【问题标题】:How to cancel token using a custom Axios instance?如何使用自定义 Axios 实例取消令牌?
【发布时间】:2020-06-11 20:23:52
【问题描述】:

我有一个使用 axios.create() 的自定义 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 实例。

【问题讨论】:

    标签: javascript reactjs async-await axios


    【解决方案1】:

    发现拦截器存在问题。在对错误对象执行任何操作之前,请确保您使用 Axios.isCancel() 检查是否存在取消错误。

    【讨论】:

      猜你喜欢
      • 2022-10-19
      • 2019-11-23
      • 1970-01-01
      • 2023-04-05
      • 2019-01-05
      • 2021-07-02
      • 2019-11-26
      • 1970-01-01
      • 2022-07-27
      相关资源
      最近更新 更多