插件窝 干货文章 带 Fetch 的 AbortController

带 Fetch 的 AbortController

strong abortcontroller fetch signal 608    来源:    2024-10-20

javascript 中的 abortcontroller 是一个实用程序,用于取消或中止异步操作,例如获取请求或事件侦听器等其他任务,这些任务可能需要一些时间才能完成。它允许您停止不再需要的操作,这对于提高性能和管理资源很有用。

示例用例:

// Create an AbortController instance
const controller = new AbortController();
const signal = controller.signal;

// Start a fetch request with the signal attached
fetch('https://api.example.com/data', { signal })
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(err => {
    if (err.name === 'AbortError') {
      console.log('Fetch request was aborted');
    } else {
      console.error('Fetch error:', err);
    }
  });

// If we need to cancel the request:
controller.abort(); // This will abort the fetch request

  1. 控制器:abortcontroller 创建一个管理中止过程的控制器。

  2. signal:abortcontroller 有一个信号属性,您可以将其传递给 fetch() 等函数。该信号用于在操作应中止时进行通信。

  3. abort() 方法:当调用 abort() 方法时,会触发信号并取消操作。