axios设置的timeout为什么不起作用?
import axios from "axios";
import {Message} from 'element-ui'
import {HTTPCODE} from '@/utils/config'
let requests = axios.create({
baseURL:"/rest",
timeout:5000
})
requests.interceptors.request.use((config)=>{
return config;
})
requests.interceptors.response.use(
(res)=>{
return res.data;
},
(err)=>{
console.log(err);
if(err.config.url.indexOf("/passwords/") == -1){
Message({
showClose: true,
message: HTTPCODE[err.response.status],
type: "error",
dangerouslyUseHTMLString: true,
})
}
return Promise.reject(err.response.status);
}
)
export default requests
回复
1个回答

test
2024-07-17
可以生效呀。我用这段代码做的测试。
let requests = axios.create({
baseURL: "https://api.github.com/repos",
timeout: 100,
});
requests.interceptors.response.use(
(res) => {
return res.data;
},
(err) => {
console.log(err);
return Promise.reject(err.response.status);
}
);
requests.get('/facebook/react/stargazers?t='+(new Date().getTime()), {
headers: {
Accept: 'application/vnd.github+json'
}
})
显示:
{"message":"timeout of 100ms exceeded","name":"AxiosError","config":{"transitional":{"silentJSONParsing":true,"forcedJSONParsing":true,"clarifyTimeoutError":false},"transformRequest":[null],"transformResponse":[null],"timeout":100,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN","maxContentLength":-1,"maxBodyLength":-1,"env":{"FormData":null},"headers":{"Accept":"application/vnd.github+json"},"baseURL":"https://api.github.com/repos","method":"get","url":"/facebook/react/stargazers?t=1666317015310"},"code":"ECONNABORTED","status":null}
在RunJS示例中运行查看。
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容