我有一个触发AJAX请求的循环,是否可以暂停循环,直到AJAX每次迭代都返回?
for (var i = 0; i < 5; i++) {
var data = "i=" + 1;
var ajax = $.ajax({
url: '/ajax.php',
type: 'post',
data: data,
success: function(result)
{
//alert(result);
}
});
//pause the for loop here
ajax1.done(function (result) {
//continue the for loop
});
}
答案 0 :(得分:1)
您希望Ajax调用是异步的,但也要连续执行。您可以使用递归代替for循环。
doAjax (index, maxNumber) {
var data = "i=" + index;
var ajax = $.ajax({
url: '/ajax.php',
type: 'post',
data: data,
success: function(result)
{
//alert(result);
}
});
ajax1.done(function (result) {
if(index<=maxNumber){
doAjax(index + 1, maxNumber);
});
}
您可以将其称为 doAjax(1, 5)
,这将使之前的一个ajax调用从1到5完成。
答案 1 :(得分:0)
在ES6中,您可以使用np.float64 == np.dtype(float).type
/ async
语法:
await
(这需要在for (let i = 0; i < 5; i++) {
let data = "i=" + i;
let result = await $.ajax({
url: '/ajax.php',
type: 'post',
data: data
});
console.log(result);
}
函数中完成。)
除此之外,JS中没有允许这样做的语法,因此您必须调整代码:
async