1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>es6 Promise</title>
6 </head>
7 <body>
8
9 </body>
10 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.19.2/axios.min.js"></script>
11 <script type="text/javascript">
12
13 let p = new Promise((reslove,reject)=>{
14 let aa = 4567890
15 // 写业务
16 reslove(aa)
17 // reject('sdaa')
18 })
19 p
20 .then(res=>{
21 // 写业务
22 console.log(res)
23 return a()
24 })
25 .then(res=>{
26 console.log(res)
27 })
28 .catch(err=>{
29 console.log(err)
30 })
31
32
33 function a(){
34 return '哈哈啊哈'
35 }
36
37
38 // 多个方法测试
39 let test1 = new Promise((resolve,reject)=>{
40 setTimeout(()=>{
41 resolve([1,2,3,4,5,6])
42 },200)
43 })
44
45
46 let test2 = new Promise((resolve,reject)=>{
47 setTimeout(()=>{
48 // resolve({a:1,b:'ssds'})
49 reject('错误')
50 },500)
51
52 })
53
54 Promise.all([test1,test2])
55 .then(res=>{
56 console.log(res)
57 })
58 .catch(err=>{
59 console.log(err)
60 })
61
62
63 Promise.race([test1,test2])
64 .then(res=>{
65 console.log(res)
66 })
67 .catch(err=>{
68 console.log(err)
69 })
70
71
72 // Promise.all方法,对于多个方法一起调用,多个方法返回的全部是成功的才会在then打印
73 // Promise.race方法,对于多个方法一块执行,只返回最先执行的一个
74
75 </script>