如果又想设置定时关闭,又想设置轮询,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包起来。