javascript 承诺和捕获

问题描述 投票:0回答:1

我正在研究 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)

javascript promise try-catch
1个回答
0
投票

在第二个代码片段中,您缺少 return 语句

then(a => { return f2(a) }) 
© www.soinside.com 2019 - 2024. All rights reserved.