gpt4 book ai didi

javascript - 将拒绝/解决添加到捕获/成功

转载 作者:行者123 更新时间:2023-12-02 14:13:24 25 4
gpt4 key购买 nike

我使用以下代码,我想知道是否应该将拒绝添加到最佳实践用法这个 promise 在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");
});
}
}
};

最佳答案

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

如果提供了 req,您的代码当前会返回一个 promise ,该 promise 将通过 end 的返回值(如果重新启动成功)或send(如果不是),我相信在这两种情况下都是响应对象本身 (res)。

如果你想让调用者知道重启是否成功,那么是的,你想拒绝 promise ;使用 ES2015 promise ,您可以通过添加 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);
})

如果您希望调用者知道重启是否成功,那就不要这样做。

关于javascript - 将拒绝/解决添加到捕获/成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39265720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com