Axios取消令牌取消每个请求

时间:2020-04-07 13:35:19

标签: reactjs axios cancellationtokensource cancellation-token request-cancelling

我正在尝试实现cancelToken API,以便每当我向服务器发出请求以获取每个按键时的结果时,仅应处理最后一个请求,但是我已经实现了axios cancel token API,看来取消每个请求,我在这里做错了什么?每次击键都会调用此功能。

Dask.DataFrame

1 个答案:

答案 0 :(得分:3)

您应在 之前取消先前的cancelToken,再进行新的axios调用。首次请求时,请保存cancelToken。然后,当您发出第二个请求时,检查是否已经有一个cancelToken并取消它,然后进行第二次axios调用。

最好对getProductLists2进行反跳以限制呼叫率

这是我的方法:

    // Cancel the previous axios token if any
    if (this.cancel) this.cancel.cancel();
    // Get a new token
    this.cancel = axios.CancelToken.source();
    axios
        .get(myURL, { cancelToken: this.cancel.token })
        .then((res) => {
          console.log(res.data);
        })
        .catch((error) => { console.log(error); });