gpt4 book ai didi

JavaScript/Node.JS 在另一个 promise 中返回一个 promise 不起作用

转载 作者:行者123 更新时间:2023-11-29 23:36:09 25 4
gpt4 key购买 nike

我对那些 promise 的事情有点困惑,不明白为什么我不能将一个 promise 返回到另一个 promise。我的问题如下,我有一个保存功能:

save(Driver) {
this.exists(Driver).then(exist => {
if(exist) {
return new Promise(function (resolve, reject) {
if (exist === true) {
resolve(true);
} else if (exist === false) {
resolve(false);
} else {
reject(err);
}
});
}
});
};

虽然很简单,但当我尝试按如下方式调用该函数时:

save(driver).then(this.common.saveSuccess(res))
.catch(this.common.noSuccess(res));

我收到一条错误消息,提示 Cannot read property 'then' of undefined 并且我不明白为什么我要返回一个 promise 。感谢帮助

最佳答案

您的save 函数非常复杂。这里不需要嵌套的 promise,只需返回 this.exists 函数的结果(promise):

save(Driver) {
return this.exists(Driver);
};

此外,您错误地使用了此功能。 save 函数可以解析为 truefalse 值,因此您需要在 then 回调中验证此值并对可能的错误使用 catch 回调:

save(driver)
.then(exists => {
if (exists) {
this.common.saveSuccess(res);
} else {
this.common.noSuccess(res)
}
})
.catch(err => // process error here);

关于JavaScript/Node.JS 在另一个 promise 中返回一个 promise 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46236501/

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