【问题标题】:Cancel several axios requests with same CancelToken用相同的 CancelToken 取消多个 axios 请求
【发布时间】:2018-08-03 22:30:53
【问题描述】:

我在一个视图中有不同的反应模块,而每个模块都通过axios 调用 API。转到另一个视图时,应取消所有呼叫。然而,当返回到这个视图时,应该再次开始调用(那些在componentDidMount()中)。

文件AxiosCancellation.js

import axios from 'axios';
let cancel;
export var cancelRequest = (message) => {
  if (cancel) cancel(message);
};
export var setCancelToken = (c) => {
  cancel = c;
};
export var CancelToken = axios.CancelToken;

文件 2:

import {CancelToken, setCancelToken} from "AxiosCancellation";
export var get1: () => {
  return axios.get('/get1', {
    cancelToken: new CancelToken(function executor(c) {
      setCancelToken(c);
    })
  }).then(handleResponse);
}

文件 3:

import {CancelToken, setCancelToken} from "AxiosCancellation";
export var get2: () => {
  return axios.get('/get2', {
    cancelToken: new CancelToken(function executor(c) {
      setCancelToken(c);
    })
  }).then(handleResponse);
}

当我现在在点击导航栏上的链接时拨打cancelRequest() 时,只有一个电话被取消。如何取消多个调用(在不同文件中)?

【问题讨论】:

    标签: javascript reactjs axios


    【解决方案1】:

    尝试使用这个库axios-tx

    只要确保所有相关调用都使用同一个实例(应该一起取消)

    【讨论】:

      猜你喜欢
      • 2017-12-04
      • 1970-01-01
      • 2023-04-05
      • 2017-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多