Promise.race() 方法 , 【谁跑的快,以谁为准执行回调】 ,给某个异步请求设置超时时间,并且在超时后执行相应的操作

本文介绍了如何使用JavaScript的Promise.race方法来比较多个异步请求,设置超时并在超时后执行相应操作,以图片加载为例展示了具体实现和结果处理。
摘要由CSDN通过智能技术生成

  // 谁跑的快,以谁为准执行回调  ,给某个异步请求设置超时时间,并且在超时后执行相应的操作

      Promise.race([runAsyn(),runAsyn2(),runAsyn3()]).then((reason)=>{

          console.log(reason);

      })

      // race 举例  ,  请求加载一个图片

      function RequestImg() {

        var p = new Promise((resolve, reject) => {

          var img = new Image();

          img.onload = function () {

            resolve(img);

          };

          img.src = "xxxxx";

        });

        return p;

      }

//延时函数,给请求计时

      function timeout() {

        var p = new Promise((resolve, reject) => {

          setTimeout(() => {

            reject("图片请求超时");

          }, 3000);

        });

        return p

      }

      Promise.race([RequestImg(), timeout()])

        .then((result) => {

          console.log(result);

        })

        .catch((reason) => {

          console.log(reason);

        });

运行效果:

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值