Promise 中 return 一个 promise 对象为什么捕获不到 ?

如题:
方法 A

return new Promise((resolve, reject) => {
     if (sthElse … ) {
         resolve()
     }
     reject()
})

方法 B

return new Promise((resolve, reject) => {
     if (sth … ) { // 我想把剩下的判断封装给另一个 Promise 对象
         return A()
     }
     reject()
})

调用方法 B

B()
.then()
.catch()

都捕获不到 …

阅读 1.9k
1 个回答

写到 then 里. 如下:
image.png

试试错误处理:
image.png

这是代码, 自己在控制台跑一下看:

new Promise(function (resolve, reject) {
  throw new Error("oops!");

  console.log("in promise b");
  resolve(1);
})
  .then((res) => {
    return new Promise((resolve, reject) => {
      console.log("in promise a, get promise b res: ", res);
      resolve(2);
    });
  })
  .then((res) => {
    console.log("in then, get promise a res: ", res);
  })
  .catch((err) => {
    console.error("in error", err);
  });
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题