zoukankan      html  css  js  c++  java
  • promise.all 异常处理

    promise.all 中任何一个promise 出现错误的时候都会执行reject,
    导致其它正常返回的数据也无法使用了
    有两个解决方法:
    1.全部改为串行调用(失去了node 并发优势)
    2.当promise捕获到error 的时候,代码吃掉这个异常,返回resolve,约定特殊格式表示这个调用成功了

    var p1 =new Promise(function(resolve,reject){
    setTimeout(function(){
    resolve(1);
    },0)
    });
    var p2 = new Promise(function(resolve,reject){
    setTimeout(function(){
    resolve(2);
    },200)
    });
    var p3 = new Promise(function(resolve,reject){
    setTimeout(function(){
    try{
    console.log(XX.BBB);
    }
    catch(exp){
    resolve("error");
    }
    },100)
    });
    Promise.all([p1, p2, p3]).then(function (results) {
    console.log("success")
    console.log(results);
    }).catch(function(r){
    console.log("err");
    console.log(r);
    });


    点赞 1
    收藏
    分享

    ISaiSai
    发布了401 篇原创文章 · 获赞 130 · 访问量 242万+
    他的留言板
    关注

    ————————————————
    版权声明:本文为CSDN博主「ISaiSai」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/isaisai/article/details/48437091

  • 相关阅读:
    TSQL Beginners Challenge 1
    SQL拾遗
    简易实体生成方式
    CTE-递归[2]
    编号处理
    行列转换/横转竖
    OUTPUT、Merge语句的使用
    关于SQL IO的一些资料
    对左值(lvalue)和右值(rvalue)的两种理解方式
    跨平台判断64位和32位开发的一些宏定义
  • 原文地址:https://www.cnblogs.com/sexintercourse/p/12423691.html
Copyright © 2011-2022 走看看