拒绝promise时停止代码执行

Stop code execution when rejecting promise

本文关键字:代码 执行 promise 拒绝      更新时间:2023-09-26

我有以下promise返回函数:

function createJourney() {
  return new Promise((resolve, reject) => {
    // code ...
    doOperation((err, data) {
      // code ...
      return reject('We need to exit now!')
    });
    // ---> Why is code stil executing here? <---
  })
}

为什么代码在拒绝下面执行?拒绝时,我想停止执行createJourney函数。

我正在使用蓝鸟承诺。

想象

return new Promise((resolve, reject) => {
  doThing1()
  doOperation(..);
  doThing2()
})

根据doOperation()内部发生的情况,没有理由不执行doThing2()

doOperation可能会启动一个异步操作,并且在您的示例中调用reject之前很久就会调用doThing2。