如何多次运行 javascript 函数,直到满足 if 条件



我有一个Ajax调用,我想多次运行,直到它满足特定的if条件。AJAX 调用为您提供作业状态 - 正在运行、已排队和已完成。 我无法获取作业状态 - 完成。获取"正在运行"状态后,需要几分钟才能获得"完成"状态。到目前为止,我已经尝试了以下JS。我还想在满足 if 条件后中断循环。我也不确定我是否应该运行 100 次调用,因为它可能需要更多时间。谢谢你的帮助。

我的JS:

var pollForJob= gallery.getJob(jobId, function(job){
var jobStat=job.status;
console.log(jobStat);
if(jobStat=="Complete"){
alert("Complete");
} else {
// Attempt it again in one second
setTimeout(pollForJob, 1000);
console.log("still working");
console.log(jobStat);
}
},  function(response){
var error = response.responseJSON && response.responseJSON.message || 
response.statusText;
alert(error);
// Attempt it again in one second
setTimeout(pollForJob, 1000);
});

就像Jeremy Thille说的,这被称为长投票。一个简单的方法是创建一个函数来调用服务器。然后,如果失败,请稍后使用setTimeout对另一个请求进行排队。

function pollForJob() {
gallery.getJob(jobId, function(job) {
var jobStat = job.status;
if (jobStat == "Complete") {
alert("Complete");
} else {
// Attempt it again in one second
setTimeout(pollForJob, 1000);
}
}, function(response) {
var error = response.responseJSON && response.responseJSON.message || response.statusText;
console.error(error);
// Attempt it again in one second
setTimeout(pollForJob, 1000);
});
}
pollForJob();

相关内容

  • 没有找到相关文章

最新更新