axios设置的timeout为什么不起作用?

作者站长头像
站长
· 阅读数 15
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个回答
avatar
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示例中运行查看。

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