Add reject/resolve to catch/success
Add reject/resolve to catch/success
我使用以下代码,我想知道最佳实践使用,如果我应该添加拒绝到这个承诺里面的圈套?
run: function (req, res) {
if (req) {
return this._un(req).then(function() {
return proce.restart().then(function() {
return res.status(200).end("sucess");
//Here should I use reslove
});
}).catch(function(err) {
return res.status(500).send("error: " + err);
//Here should I use reject???
});
}
else {
return new Promise(function(resolve, reject) {
reject("No application content found");
});
}
}
};
你不能在承诺中"添加拒绝"。承诺要么未解决,要么已解决(解决/拒绝)。
如果提供了req
,您的代码当前返回一个承诺,该承诺将用end
的返回值(如果重启成功)或send
的返回值(如果不是)来解决,我相信在这两种情况下都是响应对象本身(res
)。
如果你想让调用者知道重启是否成功,那么是的,你想拒绝这个承诺;随着ES2015的承诺,你可以通过抛出catch
来做到这一点,我假设Bluebird是类似的:
.catch(function(err) {
res.status(500).send("error: " + err);
throw err; // Or `throw new Error(err);`, it depends on what `err` is and your convention
})
…或者使用蓝鸟的Promise.reject
(这也是es2015兼容):
.catch(function(err) {
res.status(500).send("error: " + err);
return Promise.reject(err);
})
如果不想让调用者知道重启是否成功,那么就不要。
相关文章:
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- errors with Javascript try catch
- 如何使用(this)访问Angular 2 http rxjs catch函数中的对象属性
- http/rxjs catch回调中的Angular 2重定向导致TypeError:无法读取属性'订阅'
- AngularJs.调用$http.success中的jQuery函数
- JSON.parse,已经在try/catch块中,仍然抛出语法错误
- 财产'catch'在类型'可观察<任意>'
- 错误处理try&catch+回调
- Catch无法读取null的属性
- 在try-catch块内的HTML文件中导入JavaScript文件
- AngularJS:使用ng-show/hide动态维护下拉列表的3种状态(InProgress、Success、Err
- 如何使response.success()等待
- javascript中的Catch X-Frame-Options错误
- Angular $q.reject().success(),这有意义吗?
- Javascript Regex Catch Word
- jquery ajax success functions not executing
- bluebird promise catch() 没有使用 Promise.CancelError 调用内部函数
- json.success重定向到感谢页面
- 如何将submitHandler替换为success.form.bv
- Add reject/resolve to catch/success