使用promoise.race([p1, p2])设置promise超时
源码
function promiseTimeout(promise, delay){
let timeout = new Promise(function(reslove, reject){
setTimeout(function(){
reject('超时啦~')
}, delay)
})
return Promise.race([timeout, promise])
}
function foo() {
return new Promise(function(reslove, reject){
// 假设有个异步请求
setTimeout(function() {
// 干了很多事情
reslove('request sucess!')
}, 3000)
})
}
promiseTimeout(foo(), 2000).then(function(data){
console.log(data)
},function(err){
console.log(err)
})
网友评论