我有一個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