【发布时间】: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