专业的编程技术博客社区

网站首页 > 博客文章 正文

终止 Promise 执行的两种方法(怎么终止promise请求)

baijin 2024-08-19 11:29:29 博客文章 6 ℃ 0 评论

上面的讨论中,我们看到使用 Promise.race 可以达到终止一个 Promise 继续执行的目的。但是,这并不是唯一的一种方式。我们还可以使用 AbortController 来实现这一功能。

AbortController 的基本原理

AbortController 是一个 API,允许你终止一个或多个 Promise 执行。这通过一个 signal 对象来实现,该对象的状态有三种可能:pending、aborted 和 rejected。

使用 AbortController 终止 Promise 执行

在使用 AbortController 来终止 Promise 执行时,我们可以通过 abort() 方法来设置信号为 "aborted" 状态。之后,当我们尝试执行任何依赖于这个信号的 Promise 时,它们会自动终止。

下面是一个示例:

const controller = new AbortController();
const signal = controller.signal;

fetch('/api/data', { signal })
  .then(data => console.log('Received data:', data))
  .catch(error => console.error('Fetch error:', error));

// 终止 Promise 执行
controller.abort();

try {
  const data = await fetch('/api/data', { signal });
  console.log('Received data:', data);
} catch (error) {
  if (error.name === 'AbortError') {
    console.log('Promise was aborted');
  } else {
    throw error;
  }
}

在这个示例中,我们使用 AbortController 来终止一个 fetch() Promise 的执行。

总结

通过上面的讨论,我们可以看到有两种方法来实现终止 Promise 执行的功能:一种是使用 Promise.race(), 另一种是使用 AbortController. 使用 AbortController 能够更方便地控制 Promise 执行的流程。

#头条创作挑战赛##日乒女团进决赛 张本美和哭了#

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表