我正在研究 javascript Promise。第一个代码工作正常,但第二个代码给出错误。
捕获错误时,调用reject函数不就够了吗?我不明白在这种情况下使用和不使用 return 语句之间的区别。
我不仅期望第一个代码,而且第二个代码也能正常工作
const f1 = () => {
return new Promise((res, rej) => {
setTimeout(() => {
res("number1:complete")
}, 2000)
})
}
const f2 = (message) => {
console.log(message)
return new Promise((res, rej) => {
setTimeout(() => {
rej("number2:fail")
}, 3000)
})
}
//first code >> success
f1()
.then(a => {
return f2(a)
})
.catch(console.log)
//second code >> error
f1()
.then(a => {
f2(a)
})
.catch(console.log)
在第二个代码片段中,您缺少 return 语句
then(a => { return f2(a) })