setTimeout和setInterval踩得坑

如果又想设置定时关闭,又想设置轮询,setTimeout 调用关闭定时器的时候必须用函数包裹起来清除定时器操作。

 setTimeout(clear,60000);//一分钟之后关闭接口
          //定时查看订单状态
    	  function clear(){
    		  clearInterval(orderTimer)
    	  }
          var orderTimer = setInterval(function () {
            $.ajax({
              url: '/WeChatServer/queryOrderStateByOutTradeNo.do',
              data: {
                deviceId: deviceId,
                outTradeNo: result.outTradeNo,
              },//传给后台的数据
              method: 'post',
              dataType: 'json',
              success: function (res) {
                // 当满足条件
                if (res.data.state == 2 || res.data.state == 3) {//当已支付或者进行中的时候跳转到成功页面
                  var data = res.data.config;
                  $('.paySuccess').html(' 您本次可淋浴时长为' + data.maxminute + '分钟;<br/>' +
                    '请在' + data.timeout + '分钟内按启动按钮进行淋浴,否则将自动结束;<br/' +
                    '淋浴过程中您可暂停' + data.pausecount + '次,每次暂停时间不超过' + data.pausetime + '分钟,否则将自动结束。'
                  );
                  location.href = '../lockerArea/paySuccess.html';//跳转到成功的页面
                  clearInterval(orderTimer);
                  orderTimer = null
                } 
              }
            })
          }, 3000);

setInterval设置轮询时如何需要调用函数,需要把函数用function包起来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值