我的账户
猩码学苑

专注C++开发菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

王龙飞 2023-1-9

[复制链接]
浅夏ζ 发表于 2023-2-16 18:17:49 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
  • <script>
  •         // 实例化
  •         // Promise的状态改变了之后就结束了
  •         const p1 = new Promise((resolve, reject) => {
  •             if (true) {
  •                 resolve('成功');
  •             } else {
  •                 reject('失败')
  •             }
  •         });
  •         const p2 = new Promise(resolve => {
  •             setTimeout(() => {
  •                 resolve('aaa');
  •             }, 1000)
  •         });
  •         const p3 = new Promise(resolve => {
  •             setTimeout(() => {
  •                 resolve('bbb');
  •             }, 200)
  •         });
  •         const p4 = new Promise(resolve => {
  •             setTimeout(() => {
  •                 resolve('ccc');
  •             }, 3000)
  •         });
  •         // 静态方法--all,any,race
  •         //all()
  •         Promise.all([p2, p3, p4]).then(values => {
  •             console.log(values);
  •         });
  •         // any();
  •         Promise.any([p2, p3, p4]).then(values => {
  •             console.log(values);
  •         });
  •         // race();
  •         Promise.race([p2, p3, p4]).then(values => {
  •             console.log(values);
  •         });
  •         // 所有的成功才可以,并发执行多个promise,必须多个(所有的)状态都变成成功才可以
  •         // console.log(Promise.all);
  •         // 任何一个成功就可以,只要并发中有一个成功,就返回那个成功的promise的值
  •         // console.log(Promise.any);
  •         // 谁跑的快就是谁--赛跑,并发执行多个promise,找出跑的最快的
  •         // console.log(Promise.race);
  •         // console.log(Promise.reject);
  •         // console.log(Promise.resolve);
  •     </script>

[color=rgb(19, 192, 126) !important]复制代码

2.async控制顺序
  • <script>
  •         // async和await是ES7提出来的关键字,主演用于补充Promise
  •         // Promise控制异步顺序,解决回调地狱
  •         // async:用在一个函数前面,声明函数中有异步的操作
  •         // await:只能用在async修饰的函数,必须配合async使用,用于等待一个Promise实例的状态变化
  •         async function fn(){
  •             let tet=await new Promise((resolve,reject)=>{
  •                 if(true){
  •                     setTimeout(()=>{
  •                         resolve('成功');
  •                     },5000);
  •                 }else{
  •                     reject('失败');
  •                 }
  •             });
  •             console.log(tet);
  •         };
  •         fn();
  •     </script>

[color=rgb(19, 192, 126) !important]复制代码

  • <script>
  •         async function getData(){
  •             let r1=await axios.get('http://162.14.107.109/list')
  •             console.log('接口1list',r1.data);
  •             let r2=await axios.get('http://162.14.107.109/show?id=1174')
  •             console.log('接口2show',r2.data);
  •             let r3=await axios.get('http://162.14.107.109/show?id=1185')
  •             console.log('接口3show',r3.data);
  •         }
  •         getData();
  •     </script>

[color=rgb(19, 192, 126) !important]复制代码

[color=rgb(19, 192, 126) !important]


回复

使用道具 举报

关注0

粉丝0

帖子76

发布主题
大家都在学
课堂讨论
一周热帖排行最近7x24小时热帖
关注我们
专注C++菁英教育

客服电话:18009298968

客服时间:9:00-21:00

猩码学苑 - 专注C++开发菁英教育!( 陕ICP备2025058934号-1 )

版权所有 © 陕西菁英数字科技有限公司 2023-2026