https://developer.mozilla.org/zh-CN/docs/Web/API/setTimeout
setTimeout处理一段请求失败后重试,原计划5秒延迟,结果发现失败后都是立即执行
语法
setTimeout(function[, delay, arg1, arg2, ...]);
setTimeout(code[, delay]);
- setTimeout可以延迟delay时间后,执行function函数,或者code可执行代码字符串,arg1为执行function的参数
使用错误
- 传递给setTimeout的不是函数本身,而是函数执行结果,导致立即执行
var try_times = 10;
var times = 0;
function doAction() {
var dt = new Date();
console.log("dt:", dt.toLocaleDateString(), dt.toTimeString());
$.ajax({
url: "xxx.do",
type: "POST",
dataType: 'json',
success: function (data) {
console.log(data);
},
error: function (data) {
if (++times < try_times) {
console.log("开始第" + times + "重试");
setTimeout(doAction(), 5000);
}
}
});
}
doAction();