blog icon indicating copy to clipboard operation
blog copied to clipboard

请求的超时处理

Open YuArtian opened this issue 5 years ago • 1 comments

请求的超时处理

xhrtimeout 可以配置

var xhr = new XMLHttpRequest()
xhr.open('GET', '/server')
xhr.timeout = 5000
xhr.ontimeout = function(){
    console.log('Time Out')
}

fetch 需要利用 Promise.race

function _fetch (fetch_promise, delay) {
    return Promise.race([
        fetch_promise,
        new Promise(function(resolve, reject){
            setTimeout(reject('Time Out'), delay)
        })
    ])
}
_fetch(fetch('/server', {method: 'GET'}), 5000)

YuArtian avatar Dec 06 '18 12:12 YuArtian

超时后触发后最好把 fetch cancel 掉

lstoryc avatar Jun 08 '20 14:06 lstoryc