承诺中的快速错误处理

时间:2017-05-25 17:35:18

标签: node.js express error-handling promise

我遇到快递和承诺错误的问题。

我正在努力找到处理错误的最佳方法,在我的应用中创建标准方法。

但是,我在问题面前:

validate(req.body)
.catch(e => next(new APIError(400, e)))
.then(validatedbody => searchdatabase(validatedbody))
.then(dbResult => validate(dbResult))
.catch(e => next(new APIError(500, e)))
// results from db should always be valid
.then(validatedDbResult => res.json(validatedDbResult))

如果正文错误,我们应该停止并发送错误,错误将使用错误处理中间件发送,但是如果承诺如何工作,它还将继续下一步(在数据库中搜索)

我该怎么办? 我是否正确地处理了错误?

非常感谢, Giltho

1 个答案:

答案 0 :(得分:1)

重新抛出错误,只在链的最末端处理

chartData: Ember.computed("data.left", "data.right", "session.clientId", function () {
    const data = this.get("data");

    const clientId = this.get("session.clientId");
    console.log(clientId);

    if (data && data.get("left") !== undefined && data.get("right") !== undefined) {
        return data;
    }

    this.set("_chartDisplayData", null);
    return null;
})