添加拒绝/决心赶上/成功
我使用下面的代码,我想知道最佳实践的用法,如果我应该添加拒绝在这个承诺内的承诺?
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
的返回值(如果不是)parsing的promise,我相信这两种情况都是响应对象本身( res
)。
如果你想让主叫方知道重启是否成功,那么是的,你想要拒绝这个诺言。 与ES2015承诺,你可以做到这一点投掷catch
,我认为蓝鸟是相似的:
.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); })
如果您不希望呼叫者知道重新启动是否成功,则不要。