axios库中的超时功能不起作用

我已经设置了axios.defaults.timeout = 1000;

我停止了为我提供API的服务器。

但发送请求后超过1秒才会超时。

这就是我的要求:

import axios from 'axios';
axios.defaults.timeout = 1000;

return axios.post(`${ROOT_URL}/login/${role}`, creds).then((response) => {
      console.log(response);

        if(response.status === 200) {
          // If login was successful, set the token in local storage
          localStorage.setItem(`${role}_log_toks`, JSON.stringify(response.data));

          // Dispatch the success action
          dispatch(receiveLogin(response.data));

          return response;
        }
      }).catch(err => {
        console.log(err);
        // If there was a problem, we want to
        // dispatch the error condition
        if(err.data && err.status === 404) {
          dispatch(loginError(err.data));
        } else {
          dispatch(loginError('Please check your network connection and try again.'));
        }

        return err;
      });

我也试过:

return axios.post(`${ROOT_URL}/login/${role}`, creds, {timeout: 1000}).then...

Axios不会停止提取,5到10分钟后它终于显示网络错误。 我知道还有其他技术可以处理超时,但为什么axios中的超时功能不起作用? 可能是axios不停止提取的原因是什么?

Axios版本0.9.1

编辑:正如在评论中提到的,我也尝试过:

import axios from 'axios';

const httpClient = axios.create();

httpClient.defaults.timeout = 500;

return httpClient.post(`${ROOT_URL}/login/${role}`, creds)
  .then(handleResponse)

您需要创建一个axios http客户端的实例:

const httpClient = axios.create();
httpClient.defaults.timeout = 500;

然后您可以使用httpClient,如下所示:

return axios.post(`${ROOT_URL}/login/${role}`, creds)
  .then(handleResponse)

在旁注中,您也可以使用相同的配置而不是使用${ROOT_URL}来设置基本网址:

httpClient.defaults.baseURL = ROOT_URL
链接地址: http://www.djcxy.com/p/33519.html

上一篇: Timeout feature in the axios library is not working

下一篇: Detecting whether a Flask app handles a URL