如何在Vue.js中使用Axios设置get请求的超时

如何在Vue.js中使用Axios设置get请求的超时,vue.js,axios,Vue.js,Axios,如何使用Vue.js和Webpack中的axios设置GET请求的超时? 例如,我有这个代码 axios.get("myURL").then(function(response) { // code } 我尝试将{timeout:3000}作为参数,但它不起作用据我所知,Axios中的超时是响应超时,而不是连接超时。您可以尝试使用cancelToken功能 const connectToServer = ip => { let source = Can

如何使用Vue.js和Webpack中的axios设置GET请求的超时? 例如,我有这个代码

axios.get("myURL").then(function(response) {
        // code 
    } 

我尝试将{timeout:3000}作为参数,但它不起作用

据我所知,Axios中的
超时是
响应超时
,而不是
连接超时
。您可以尝试使用
cancelToken
功能

const connectToServer = ip => {
    let source = CancelToken.source();
    setTimeout(() => {
        source.cancel();
    }, 3000);
    return axios.get(ip + '/config', {cancelToken: source.token}).then((result) => {
        // My logic
    })
};
这将始终取消,或者如果您只想在没有响应时取消:

function loginButtonPressed(username, password) {
    return async (dispatch) => {
        const source = CancelToken.source();
        try {
            let response = null;
            setTimeout(() => {
                if (response === null) {
                    source.cancel();
                }
            }, 4000);
            dispatch(authenticationPending());

            response = await axios.post('auth/login',
                {username, password},
                {cancelToken: source.token});
            dispatch(authenticationSuccess());
        } catch (error) {
            dispatch(authenticationFailed());
        }
    };
}

axios.get(“myURL”,{timeout:3000})
应该可以工作,控制台中是否显示任何错误?不,我没有错误。我已尝试创建axios实例axios({method:'get',url:'myURL',timeout:5000,}),但仍然没有超时。。我只收到一次响应,但为什么您会收到不止一次?我想每5秒发送一个新的get请求以测试数据。我得到的JSON有随机数据,每次我发送请求时都会更改。然后您要查找
setInterval
:如果响应没有在X毫秒内到达,axios的
timeout
用于“取消”请求