我有一个Ajax调用,我想多次运行,直到它满足特定的条件。 AJAX调用为您提供作业状态 - 运行,排队和完成。 我无法获得工作状态 - 完成。获得运行状态后,需要几分钟才能获得状态“完成”。到目前为止,我已经尝试了以下JS。我也想在if条件满足后打破循环。我也不确定我是否应该接听100次电话,因为这可能需要更多的时间。感谢您的帮助。如何多次运行javascript函数,直到满足if条件
我的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);
});
看'承诺'。如果没有使用'setInterval'来检查条件。 –
这叫做长轮询,基本上就是锤击服务器,直到它给你你正在等待的价值。更聪明的方法是使用websocket,这将允许服务器在完成时通知客户端。 –
调用它100次似乎是一个坏主意...... – epascarello