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