猿问

如何使用自定义 Axios 实例取消令牌?

我有一个使用公理的自定义公理实例。我想使用Axios的取消功能,但从自定义实例触发的请求永远不会被取消。它不会在 .isCancel() 方法中被检测到。但是当与全局 Axios 对象一起使用时,它工作正常。


const axiosAuth = axios.create();


const cancelToken = axios.CancelToken.source();


//request

const getProducts = async () => {

    try {

        const response = await axiosAuth.get('api', {

            cancelToken: cancelToken.token

        });

        if (response.status === 200) {

            return response.data;

        }

    } catch (err) {

        if (axios.isCancel(err)) {

            console.log('Error: ', err.message);

            return true;

        } else {

            throw new Error(err);

        }

    }

};

// I'm cancelling the request on button click using `cancelToken.cancel()`

我不明白为什么取消不适用于自定义 Axios 实例。


aluckdog
浏览 76回答 1
1回答

三国纷争

发现拦截器中存在问题。只要确保在对错误对象执行任何操作之前检查其取消错误是否也在那里使用。Axios.isCancel()
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答