[英]Add reject/resolve to catch/success
我使用以下代码,并且我想为最佳实践使用是否应该在catch中将此拒绝添加拒绝?
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
,则您的代码当前会返回一个promise,它将以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
})
...或通过使用Bluebird的Promise.reject
(也与ES2015兼容):
.catch(function(err) {
res.status(500).send("error: " + err);
return Promise.reject(err);
})
如果您不希望调用者知道重新启动是否成功,则不要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.