123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- </head>
- <body>
- <script>
- // setTimeout(()=>{
- // console.log(1)
- // setTimeout(()=>{
- // console.log(2)
- // },500)
- // },1000)
- // new Promise((resolve,reject)=>{
- // setTimeout(()=>{
- // console.log(4)
- // resolve()
- // },1000)
- // }).then(()=>{
- // console.log('r')
- // }).catch(()=>{
- // console.log('失败')
- // })
- // function fetchData() {
- // return new Promise((resolve, reject) => {
- // setTimeout(() => {
- // const data = 'hello word'
- // if (data) {
- // resolve(data)
- // } else {
- // reject('Error')
- // }
- // },1000)
- // })
- // }
- // fetchData().then((data)=>{
- // console.log(data)
- // }).catch((error)=>{
- // console.log(err)
- // })
- // fetchData()
- /*
- 函数返回一个promise对象,在promise的构造函数当中,执行异步操作,根据操作结果调用
- resolve或者reject方法,在then方法中,可以执行异步操作成功的方法,catch方法中 可以执行失败的方法
- */
- /*
- promise 有三种状态 pending(进行中) fulfilled(已成功) rejected(已失败)
- 1.当一个promise 被创建的时候 初始状态就是pending
- 2.当异步操作成功执行的时候,promise的状态会变为fulfilled 并且会调用then方法中
- 的回调函数
- 3.当异步操作失败的时候,promise的状态会变为rejected 就会调用.catch()中的回调函数
- */
- let p1 = new Promise((resolve, reject) => {
- // setTimeout(() => {
- // console.log(1)
- // reject()
- // }, 1000);
- console.log(1)
- resolve()
- })
- let p2 = new Promise((resolve, reject) => {
- setTimeout(() => {
- console.log(2)
- // resolve()
- reject()
- }, 800);
- })
- let p3 = new Promise((resolve, reject) => {
- // setTimeout(() => {
- // console.log(3)
- // resolve()
- // }, 2000);
- console.log(3)
- // reject()
- resolve()
- })
- /* promise.all()用于将多个promise实例 包装成一个新的promise实例 */
- // Promise.all([p1,p2,p3]).then(()=>{
- // console.log('ok')
- // }).catch(()=>{
- // console.log('error')
- // })
- Promise.race([p1, p2, p3]).then(() => {
- console.log('ok')
- }).catch(() => {
- console.log('error')
- })
- /* Promise.race 将多个promise实例 包装成一个promise实例 */
- /*
- 任何一个promise对象为失败,就会返回失败的状态
- 不会管在执行异步操作的promise
- */
- </script>
- </body>
- </html>
|