我遇到快递和承诺错误的问题。
我正在努力找到处理错误的最佳方法,在我的应用中创建标准方法。
但是,我在问题面前:
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
答案 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;
})