我已经在诸如get post之类的简单api请求中使用axios cancel令牌实现了axios cancel API请求。 现在,我试图在axios.all请求中实现它。如何执行呢?我已经尝试了以下方法,但是没有用。
const fetchEmail = getAxios.get('fetch/email')
const fetchMessage = getAxios.get(`fetch/message}`)
await axios.all([fetchEmail, fetchMessage], { cancelToken: cancelToken})
.then(
axios.spread((...allData) => {
const email = allData[0].data.data
const message = allData[1].data
dispatch(fetchDataSuccess(email, message))
})
)
.catch(error => {
if (axios.isCancel(error)) {
console.log('request cancelled');
}
dispatch(fetchDataFailure(error))
})
我在我的本地应用程序中实现了redux。我在卸载组件时调用cancelToken.cancel()。
useEffect(() => {
return() => {
source.cancel()
}
}, [])
我还尝试过向每个api端点(例如下面)发送cancelToken,但不起作用。
const fetchEmail = getAxios.get('fetch/email', { cancelToken: cancelToken})
const fetchMessage = getAxios.get(`fetch/message}`, { cancelToken: cancelToken})