我需要在jQuery/JavaScript中使用循环执行一个任务。我需要调用一个循环10次,在每次迭代中,我需要进行一次Ajax调用。在每次迭代中,我还需要检查Ajax调用响应中的条件。如果满足条件,那么下一次迭代应该继续,用一个确认框提示用户。否则,循环应该结束。我恳请你在这方面给予协助。
function GetNextBagWeight() {
let res = "OK";
var arr = [];
$.ajax({
url: '/LoadingControl/GetNextBagWeight?BayId=' + 1,
cache: false,
dataType: 'json',
async: false,
success: function(response, status, xhr) {
debugger
var trHTML = '';
var count = 1;
if (response.isSuucess) {
trHTML = '<tr><td>' + count + '</td><td>' +
response.BagWeight + "</td><td>" +
CurrentDateWithTimeString() + "</td></tr>";
$('#tblRunTimeBagData').append(trHTML);
resp = "OK";
arr.push("OK")
} else {
trHTML = '<tr style="background-color: red;"><td>' + count + '</td><td>' +
response.BagWeight + "</td><td>" +
CurrentDateWithTimeString() + "</td></tr>";
$('#tblRunTimeBagData').append(trHTML);
arr.push("wait")
if (confirm('Proceed')) {
alert('Thanks for confirming, start next iteration');
}
}
}
});
return res;
}
这里一切都很好确认弹出窗口也会出现。但是,后台的Ajax调用仍然会在下一个迭代中发生,这应该只在单击确认按钮后发生。
1条答案
按热度按时间daupos2t1#
你需要保证AJAX调用。阅读这篇文章:https://www.taniarascia.com/how-to-promisify-an-ajax-call/
这是一个AJAX调用的promised版本:
请注意:
她提供了这个用法示例:
现在,你想让它可定制和链接,一个承诺成为下一个的先决条件:
所以,让我们假设你有一个AJAX调用数组,那么: