gpt4 book ai didi

promise - 如何在 Sails.js 中正确抛出和处理 promise 中的错误?

转载 作者:行者123 更新时间:2023-12-04 04:44:01 27 4
gpt4 key购买 nike

我开始将回调代码转换为 Sails.js 中的 promise ,但我不明白如何在 promise 链中引发自定义错误并处理它们。 Sails.js 使用 Q 作为它的 promise 库。

User.findOne({email: req.param('professorEmail'), role: 'professor'})
.then(function (user) {
if (user) {
return Course.create({
user_id: user.id,
section: req.param('section'),
session: req.param('session'),
course_code: req.param('course_code')
});
} else {
// At this point `user` is undefined which means that no professor was found so I want to throw an error.
// Right now the following statement does throw the error, but it crashes the server.
throw new Error('That professor does not exist.');
// I want to be able to handle the error in the .fail() or something similar in the promise chain.
}
}).then(function (createSuccess) {
console.log(createSuccess);
}).fail(function (err) {
console.log(err);
});

现在 .fail()永远不会被调用,因为抛出的错误会使服务器崩溃。

最佳答案

使用 .catch()而不是 .fail() .

关于promise - 如何在 Sails.js 中正确抛出和处理 promise 中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19912280/

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