gpt4 book ai didi

javascript - 我的 Promise 的第一个 then 返回一个 Promise,即使被拒绝的方法中没有返回函数

转载 作者:太空宇宙 更新时间:2023-11-04 01:42:18 25 4
gpt4 key购买 nike

在下面的代码中,链接到 addTwo 函数的第一个 .then() 调用拒绝方法,因为我正在检查 a 和 b 的类型是否为“choco”,这是不可能的。

我期望输出停止在“我们有一个错误老板”而不继续,因为拒绝方法与解析方法不同,没有“返回addTwo”语句。

但是输出显示代码继续进行下一个 then 调用,并且输出是“第二次加法的答案:未定义”。为什么代码不只是在第一次调用时停止,因为拒绝方法不返回 Promise?

var addTwo = (a, b) => {
return new Promise((resolve, reject) => {
if(typeof a === choco && typeof b === choco){
resolve(a + b)
}else{
reject("a or b or both were not numbers")
}
})
}


addTwo(5, 6).then((res) => {
console.log("Answer of addition: " + res)
return addTwo(res, 100)
}, (err) => {
console.log("We have an error boss: " + err)
}).then((res) => {
console.log("Answer of second addition: " + res)
}, (err) => {
console.log("We have an error boss: " + err)
})

最佳答案

有一个共同点。我已经更新了您的代码。

addTwo(5, 6).then((res) => {
console.log("Answer of addition: " + res)
return addTwo(res, 100);
}).then((res) => {
console.log(res);
console.log("Answer of second addition: " + res)
}).catch((err) => {
console.log("We have an error boss: " + err)
})

关于javascript - 我的 Promise 的第一个 then 返回一个 Promise,即使被拒绝的方法中没有返回函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52512988/

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