123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- <!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>
- /*
- Promise 异步编程 解决方案
- 将异步的操作 用同步的流程表达出来
- 三种状态: pending 进行中
- fulfilled 已成功
- rejected 已失败
- 层层嵌套
- */
- // function fn() {
- // console.log(3)
- // setTimeout(() => {
- // console.log(1)
- // setTimeout(() => {
- // console.log(2)
- // }, 500)
- // }, 1000)
- // }
- // fn()
- // new Promise ((resolve,reject)=>{
- // /* 成功调用 resolve 失败调用reject */
- // setTimeout(()=>{
- // console.log(4)
- // reject()
- // },1000)
- // }).then(()=>{
- // console.log('1')
- // },()=>{
- // console.log('失败')
- // })
- let p1 = new Promise((resolve,reject)=>{
- setTimeout(()=>{
- console.log(1)
- resolve()
- },1000)
- // console.log(1)
- // reject()
- })
- let p2 = new Promise((resolve,reject)=>{
- setTimeout(()=>{
- console.log(2)
- reject()
- },1500)
- // console.log(2)
- // resolve()
- })
- let p3 = new Promise((resolve,reject)=>{
- setTimeout(()=>{
- console.log(3)
- reject()
- },300)
- // console.log(3)
- // resolve()
- })
- // Promise.all([p1,p2,p3]).then(()=>{
- // console.log('ok')
- // }).catch(()=>{
- // console.log('失败')
- // })
- Promise.race([p1,p2,p3]).then(()=>{
- console.log('ok')
- }).catch(()=>{
- console.log('失败')
- })
- /* Promise.all() 返回一个Promise实例
- Promise.race() */
- </script>
- </body>
- </html>
|