首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BlueBird promise中的特定错误捕获

BlueBird promise中的特定错误捕获
EN

Stack Overflow用户
提问于 2017-01-20 17:02:05
回答 2查看 513关注 0票数 1

我使用了bluebird promise和standard-error。问题是当我抛出像这样的错误时

代码语言:javascript
复制
   return new PromiseReturns(function (resolve, reject) {
        reject(new StandardError({
        status: 'Error',
        message: "Not Found",
        originalError: err,
        code: 404
       }));
    });

它在这个捕获物中没有接收到

代码语言:javascript
复制
.catch(StandardError , function(err){
 })

取而代之的是它在

代码语言:javascript
复制
.catch(function(err){
})
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-12 14:39:05

每次导致问题时都创建新的PromiseReturns。我已经将我所有的代码捆绑在一个单独的promise中,这是可行的。

例如:

代码语言:javascript
复制
       function requestFromController(body){

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

                db.model.find().then(x => {
                    resolve(x);
                })
          });
   }
票数 0
EN

Stack Overflow用户

发布于 2017-01-20 17:21:29

这对我很管用。看看这个

代码语言:javascript
复制
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');
})

输出:

代码语言:javascript
复制
$ custom error caught
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41759680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档