1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <!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>
- // console.log(4)
- // setTimeout(()=>{
- // console.log(1)
- // setTimeout(()=>{
- // console.log(2)
- // },100)
- // setTimeout(()=>{
- // console.log(3)
- // },10)
- // },0)
- // console.log(5)
- // let p1 = new Promise ((resolve,reject)=>{
- // reject()
- // resolve()
- // }).then(()=>{
- // console.log('我成功了')
- // }).catch(()=>{
- // console.log('我失败了')
- // })
- /*
- promise 有三种状态
- pending 进行中
- fufiled 已经成功
- rejected 已经失败
- pending -> fufiled or pending -> rejected
- 不可逆的
- 1.当一个promise 被创建的时,初始状态为pending
- 2.当异步操作执行成功的时候,promise状态变为fufiled 并且执行
- then方法中回调函数
- 3.当异步操作执行失败的时候,promise状态变为rejected 并且执行
- catch方法中的回调函数
- */
- let p1 = new Promise((resolve, reject) => {
- setTimeout(()=>{
- console.log(1)
- reject()
- },1000)
- console.log(2)
- resolve()
- })
- let p2 = new Promise ((resolve,reject)=>{
- setTimeout(()=>{
- console.log(3)
- reject()
- },800)
- reject()
- })
- let p3 = new Promise ((resolve,reject)=>{
- setTimeout(()=>{
- console.log(4)
- resolve()
- },2000)
- console.log(5)
- reject()
- })
-
- /* 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')
- }) */
- // new Promise((resolve,reject)=>{
- // setTimeout(()=>{
- // console.log(1)
- // resolve()
- // },10)
- // }).then(()=>{
- // console.log('ok')
- // }).catch(()=>{
- // console.log('error')
- // })
- </script>
- </body>
- </html>
|