您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

bluebird Promise的异步异常处理

bluebird Promise的异步异常处理

承诺不是域,它们不会捕获异步回调中的异常。你就是做不到。

然而诺言来捕捉从内抛出的异常then/ catch/ Promise构造函数的回调。所以用

function getPromise(){
    return new Promise(function(done, reject){
        setTimeout(done, 500);
    }).then(function() {
        console.log("hihihihi");
        throw new Error("Oh no!");
    });
}

(或仅Promise.delay)以获得所需的行为。永远不要抛出自定义(非承诺)异步回调,总是拒绝周围的承诺。使用try-catch它是否真正需要。

其他 2022/1/1 18:17:19 有354人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶