菁英数字科技(猩码)-猩码学苑-专注软件开发人才菁英教育

标题: 罗旭 20230109 [打印本页]

作者: 十四lll    时间: 2023-2-16 18:40
标题: 罗旭 20230109
  • 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]














欢迎光临 菁英数字科技(猩码)-猩码学苑-专注软件开发人才菁英教育 (http://www.xingmaxueyuan.com/) Powered by Discuz! X3.4