在axios.all中取消axios api请求

时间:2020-11-04 17:23:29

标签: react-native api axios

我已经在诸如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})

0 个答案:

没有答案