【发布时间】:2022-09-23 21:31:57
【问题描述】:
Abortcontroller 信号不适用于我在 React 中的 Axios。
我想用 AbortController 替换 CancelToken(因为它已被弃用),但它不起作用,相应的请求没有被取消。
let testController: AbortController;
function loadTest() {
testController = new AbortController();
TestAPI.getTest(testController.signal)
.then((e) => {
console.log(e.data);
})
.catch((e) => {
console.error(e);
});
}
同样在 UseEffect Cleanup 我这样做(这里应该取消)并且信号的状态设置为中止,但仍然没有取消请求:
useEffect(() => () => {
if (testController) testController.abort();
// console.log(testController.signal.aborted) => **true**
}, []);
这是我的 API,我将 AbortSignal 传递给请求:
getTest(signal?: AbortSignal): Promise<AxiosResponse<Test[]>> {
return axios.get(`${URI}/test`, { signal });
},
使用 Axios.CancelToken.source 时工作正常,但现在使用 AbortController,请求永远不会被取消。
使用:\"axios\":\"^0.26.0\",
有人设法将 AbortController 与 React 和 Axios 集成了吗?还是 AbortController只要使用获取?
标签: reactjs react-native axios cancellation cancellationtokensource