一、全局设置超时

axios.defaults.timeout = 30000;

二、单独设置超时

1.get请求设置超时

axios(Object.assign({
	params,
	timeout: 180000
})

2.post请求设置超时

方式一:

axios(Object.assign({
  method: 'post',
	params,
	timeout: 180000
})

方式二:

axios.post(url, params, { timeout: timeout })
	.then(res => {
    console.log('response='+response);
  })
  .catch(reason => {
    console.log('reason'+reason);
  })
})

3.创建实例

可以使用自定义配置新建一个 axios 实例 :

axios.create([config])

const instance = axios.create({ baseURL: 'https://some-domain.com/api/', timeout: 1000, headers: {'X-Custom-Header': 'foobar'}});

4.判断超时

axios(Object.assign({ data: { ...e } }, apiObject.fixFaultData)).then(
  res => {
    ...
},
  err => {
    // 栏截器在请求超时之后返回err对象,业务中具体请求在reject里判断request的readyState以及status。
    if (err.request.readyState == 4 && err.request.status == 0) {
      Modal.warning({
        title: '提示',
        content: (
          <div>
          <p>请求超时</p>
          </div>
        ),
        onOk: () => {},
      });
    }
  }
);
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐