zoukankan      html  css  js  c++  java
  • await Promise.all([ ]) VS mutiple await

    应用场景:有多个异步的方法,需要同步化序列,这时候一般的处理是定义一个方法,利用 async 将其 一个一个添加 await 然后执行,也可以利用 Promise.all 来处理,相比之下,使用 Promise.all([ ]) 的方法,可以更加高效的执行,能够快速的去序列化,但是使用这个方法的劣势就是,一旦有异常了 promise 就会跳出,进而进行 catch 的回调,这样异常之后 promise.all 里边的代码语句就不会执行了;例如:

    async function test () {
      console.log( new Date().getSeconds(),'a'); 
      await rej(1000); 
      await rej(2000);
      await rej(3000);
      console.log( new Date().getSeconds(),'b');
    };
    async function test1 () {
      console.log( new Date().getSeconds(),'c'); 
      await Promise.all([rej(1000), rej1(2000), rej2(3000)]);
      console.log( new Date().getSeconds(),'d');
    };
    var rej = (time) => new Promise((resolve, reject) => {
          setTimeout(() => resolve('reject'), time);
     }); 
    var rej1 = (time) => new Promise((resolve, reject) => {
          setTimeout(() => reject('reject'), time);
     }); 
    var rej2 = (time) => new Promise((resolve, reject) => {
          setTimeout(() => resolve('reject'), time);
     }); 
    test();
    test1();
    

      

     

  • 相关阅读:
    SpringBoot-Shiro普通登录与MD5加密
    uniapp H5 微信浏览器右上角分享
    uniapp ios下 输入密码 中文输入法,无法获取到内容
    uniapp跳转支付宝支付
    uniapp中使用webp格式图片
    uniapp隐藏HTML5+RUNtime
    PC微信多开
    下载blob:https://的视频
    Python字符串转字典
    随机名字生成器
  • 原文地址:https://www.cnblogs.com/mufc/p/11841369.html
Copyright © 2011-2022 走看看