请问一下,如果有这么个需求,发送一个请求,5s内请求返回结果就跳转A,否则跳转B,这个如何实现呢
Promise.race([
new Promise((resolve) => setTimeout(() => resolve('timeout'), 5000)),
new Promise((resolve) => setTimeout(() => resolve('done'), 10000)), // 模拟一个异步请求,10 秒后返回结果
]).then((res) => {
if (res !== 'timeout') {
// Do A
} else {
// Do B
}
});
除了使用Promise.race还可以在请求前设一个5s的定时器,5s内完成就清除定时器
let isFinish = false; //判断是否在5s内完成
const time = setTimeout(function(){
isFinish = true;
//执行跳转B
},5000);
axios('/xxxxxx') //请求
.then(function(){
if(!isFinish){
clearTimeout(time)
//执行跳转A
}
})
回答
本文地址:H5W3 » 请问一下,如果有这么个需求,发送一个请求,5s内请求返回结果就跳转A,否则跳转B,这个如何实现呢