H5W3
当前位置:H5W3 > 问答 > 正文

请问一下,如果有这么个需求,发送一个请求,5s内请求返回结果就跳转A,否则跳转B,这个如何实现呢

请问一下,如果有这么个需求,发送一个请求,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,这个如何实现呢

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址