gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 03:58:31 25 4
gpt4 key购买 nike

我有一个 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 Tille 所说,这称为长轮询。一种简单的方法是创建一个函数来调用服务器。然后,如果失败,请使用 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();

关于javascript - 如何多次运行javascript函数直到满足if条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44833260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com