当前位置:首页 > React

react如何取消请求

2026-01-23 17:29:39React

react如何取消请求

react如何取消请求

取消请求的方法

在React中,取消请求通常涉及使用AbortController API或第三方库(如Axios)的取消功能。以下是几种常见实现方式:

使用AbortController

import { useEffect } from 'react';

function MyComponent() {
  useEffect(() => {
    const controller = new AbortController();
    const signal = controller.signal;

    fetch('https://api.example.com/data', { signal })
      .then(response => response.json())
      .catch(err => {
        if (err.name === 'AbortError') {
          console.log('Request was canceled');
        }
      });

    return () => {
      controller.abort(); // 组件卸载时取消请求
    };
  }, []);
}

Axios的CancelToken(旧版本)

import axios from 'axios';
import { useEffect } from 'react';

function MyComponent() {
  useEffect(() => {
    const source = axios.CancelToken.source();

    axios.get('https://api.example.com/data', {
      cancelToken: source.token
    }).catch(err => {
      if (axios.isCancel(err)) {
        console.log('Request canceled');
      }
    });

    return () => {
      source.cancel('Component unmounted');
    };
  }, []);
}

Axios的AbortController(新版本)

import axios from 'axios';
import { useEffect } from 'react';

function MyComponent() {
  useEffect(() => {
    const controller = new AbortController();

    axios.get('https://api.example.com/data', {
      signal: controller.signal
    }).catch(err => {
      if (axios.isCancel(err)) {
        console.log('Request canceled');
      }
    });

    return () => {
      controller.abort();
    };
  }, []);
}

注意事项

  • 取消请求时,相关Promise会被reject,需要正确处理错误
  • 确保在组件卸载或不需要请求时及时取消
  • 对于多个并行请求,可以共用同一个AbortController
  • 某些旧浏览器可能需要polyfill支持AbortController

标签: react
分享给朋友:

相关文章

如何下载react

如何下载react

下载 React 的方法 通过 npm 或 yarn 安装 React 可以通过包管理器 npm 或 yarn 安装。确保已安装 Node.js(包含 npm),然后在项目目录中运行以下命令:…

react如何动画

react如何动画

React 动画实现方法 React 中实现动画可以通过多种方式,包括原生 CSS、第三方库或 React 内置的动画解决方案。以下是几种常见方法: 使用 CSS 动画和过渡 通过 CSS 的 tr…

如何启动react

如何启动react

安装Node.js 确保系统已安装Node.js(建议使用LTS版本),可通过官网下载并安装。安装完成后,在终端运行以下命令验证版本: node -v npm -v 创建React项目 使用官方工具…

react如何启动6

react如何启动6

安装 Node.js 和 npm/yarn 确保系统中已安装 Node.js(建议版本 16 或更高)和 npm/yarn。可通过以下命令验证版本: node -v npm -v 创建 Reac…

react如何提交表单

react如何提交表单

表单提交的基本方法 在React中提交表单通常通过控制组件状态和事件处理实现。表单数据通过onSubmit事件捕获,并阻止默认提交行为以避免页面刷新。 import { useState } fro…

react如何引入图片

react如何引入图片

在React中引入图片的方法 使用import直接引入 将图片文件放在项目src目录下(如src/images),通过ES6的import语法引入: import logo from './imag…