javascript - BlueBird promise 中的特定错误捕获

标签 javascript node.js promise bluebird

我正在使用 Bluebird promise 和标准错误。问题是当我抛出这样的错误时

   return new PromiseReturns(function (resolve, reject) {
        reject(new StandardError({
        status: 'Error',
        message: "Not Found",
        originalError: err,
        code: 404
       }));
    });

这次捕获中没有收到

.catch(StandardError , function(err){
 })

相反,它是在

中收到的
.catch(function(err){
})

最佳答案

这对我有用。看看这个

var Promise = require('bluebird')
var StandardError = require("standard-error")

Promise.resolve().then(function() {
    throw new StandardError("Not Found", {code: 404})
}).catch(StandardError, function(e) {
    console.log('custom error caught');
}).catch(function(e) {
    console.log('generic caught');
})

输出:

$ custom error caught

关于javascript - BlueBird promise 中的特定错误捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41759680/

相关文章:

javascript - 返回 defer 本身和返回 defer.promise 的区别

Javascript虚拟网页创建

javascript - 为什么javascript在if语句中接受逗号?

javascript - 将 NodeJS 项目移动到 TypeScript 的过程

javascript - 清理带有 Promise 的意大利面条代码

javascript - 在 for 循环中解决 promise

javascript - 跨度 onclick 不起作用 jquery

javascript - 模块 'App' 不可用!你要么拼错了模块名称,要么忘记在 AngularJS 中加载它

java - 无法使用 Blowfish ECB 将解密代码从 Java 转换为 Node.js

node.js - Yeoman 和 ExpressJS