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

发布于 2022-09-12 22:21:29 字数 55 浏览 7 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

私野 2022-09-19 22:21:29
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
    }
});
风筝有风,海豚有海 2022-09-19 22:21:29

除了使用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
    }
})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文