【发布时间】:2021-10-03 05:09:07
【问题描述】:
我有一行多个待处理的请求
const requests = [];
requests.push(axios.post('/request1', {moo:1});
requests.push(axios.post('/request2', {moo:2});
requests.push(axios.post('/request3', {moo:3});
Promise.all(requests).then((reponse) => {
debugger;
}).catch((err) => {
debugger;
});
如果其中一个失败,我会尝试中止所有。 不幸的是,目前如果失败,仍然会发出下一个请求。
我尝试了一些取消代码,但下一个请求仍然触发
const requests = [];
const source = axios.CancelToken.source();
const cancelToken = source.token;
requests.push(axios.post('/request1', {moo:1}, {cancelToken} );
requests.push(axios.post('/request2', {moo:2}, {cancelToken} );
requests.push(axios.post('/request3', {moo:3}, {cancelToken} );
Promise.all(requests).then((reponse) => {
debugger;
}).catch((err) => {
source.cancel("Request canceled");
debugger;
});
【问题讨论】:
-
"...但是下一个请求仍然触发..."“仍然触发”是什么意思?
-
@T.J.Crowder 它仍在执行并且请求到达服务器
标签: javascript ajax promise axios cancellation