Javascript 添加拒绝/解决以捕获/成功

Javascript 添加拒绝/解决以捕获/成功,javascript,node.js,promise,bluebird,Javascript,Node.js,Promise,Bluebird,我使用下面的代码,我想知道最好的实践用法,如果我应该添加拒绝 这个承诺在陷阱里 run: function (req, res) { if (req) { return this._un(req).then(function() { return proce.restart().then(function() { return res.st

我使用下面的代码,我想知道最好的实践用法,如果我应该添加拒绝 这个承诺在陷阱里

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
来实现这一点,我假设蓝鸟与此类似:

.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
})
…或使用蓝鸟(也兼容ES2015):

如果您不想让调用方知道重新启动是否成功,则不要这样做。

您不会在承诺中“添加拒绝”。承诺要么未解决,要么已解决(已解决/拒绝)

如果提供了
req
,您的代码当前将返回一个承诺,该承诺将通过返回值
end
(如果重新启动成功)或返回值
send
(如果没有)来解决,我相信在这两种情况下,它都是响应对象本身(
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
})
…或使用蓝鸟(也兼容ES2015):

如果您不想让调用方知道重启是否成功,那么就不要这样做