前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Promise如何中断promise链(一)

Promise如何中断promise链(一)

原创
作者头像
堕落飞鸟
发布2023-05-23 10:37:47
9640
发布2023-05-23 10:37:47
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏

中断Promise链的方法

1. 抛出错误

要中断Promise链的执行,我们可以在任意的.then()方法中抛出一个错误。抛出错误后,Promise链会立即停止执行,并将控制权传递到链的.catch()方法或全局的错误处理器(如果有)。

以下是一个示例,演示了如何中断Promise链的执行:

代码语言:javascript
复制
function performTask1() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      console.log('Task 1 completed');
      resolve('Result 1');
    }, 1000);
  });
}

function performTask2(result) {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      console.log('Task 2 completed');
      reject(new Error('Task 2 failed'));
    }, 2000);
  });
}

function performTask3(result) {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      console.log('Task 3 completed');
      resolve('Result 3');
    }, 1500);
  });
}

performTask1()
  .then(result1 => {
    console.log('Result 1:', result1);
    return performTask2(result1);
  })
  .then(result2 => {
    console.log('Result 2:', result2);
    return performTask3(result2);
  })
  .then(result3 => {
    console.log('Result 3:', result3);
  })
  .catch(error => {
    console.error('Error occurred:', error);
  });

在上述示例中,我们定义了三个任务函数performTask1()performTask2()performTask3(),它们返回Promise对象,并模拟了异步操作。在performTask2()函数中,我们故意抛出了一个错误,模拟任务2的失败情况。

当任务2抛出错误时,Promise链会立即停止执行,并将错误传递到链的.catch()方法中进行处理。在控制台输出中,我们可以看到只有任务1和任务2被执行,任务3被中断。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 中断Promise链的方法
    • 1. 抛出错误
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档