This question already has answers here:
How to properly break out of a promise chain?

(3个答案)


3年前关闭。




我有一个与此类似的代码:
promise_function().then(()=>{
  //do something
  return another_promise_fucntion();
}).then(() => {
  //do something
  return another_promise_function1();
}).then((result) => {
  //check if result is valid
  if(!result)
     //break chain (how to stop calling the next .then functions ?)
  else
     return another_promise_function2();
}).then(()=>{
   //do something
   return another_promise_function3();
}).catch((err)=>{
   //handle error
});

如果返回的结果无效,我想停止调用下一个.then()函数。

我使用了“throw new Error()”,它工作得很好,但是我不确定这是否是推荐的方法。

最佳答案

Mozilla推荐的正确方法
您可以在此处查看更多详细信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then#Chaining

07-26 05:48