连续的、非并发的jqueryajax帖子

连续的、非并发的jqueryajax帖子,jquery,ajax,post,Jquery,Ajax,Post,我可能遗漏了一些明显的东西,但我似乎无法让我的AJAX帖子连续运行,而不是与jQuery并发运行 ad_numbers是一个数字ID数组 $(ad_numbers).each(function() { ad_number = $.trim(this); if(!ad_number) { return true; } $.post('/fetch.php', { ad_number: ad_number }, function(data, textStatus) { $('

我可能遗漏了一些明显的东西,但我似乎无法让我的AJAX帖子连续运行,而不是与jQuery并发运行

ad_numbers
是一个数字ID数组

$(ad_numbers).each(function() {
  ad_number = $.trim(this);

  if(!ad_number) { return true; }

  $.post('/fetch.php', { ad_number: ad_number }, function(data, textStatus) {
    $('#log').prepend('<p>' + data + '</p>');
  });
});
$(ad_编号)。每个(函数(){
ad_编号=$.trim(此);
如果(!ad_number){返回true;}
$.post('/fetch.php',{ad_number:ad_number},函数(数据,textStatus){
$('#log')。前置(''+data+'

'); }); });
fetch.php
中,我使用了
sleep(2)
,因此我可以确保它正常工作。它似乎不是等待第一篇文章通过后再进入阵列中的下一个广告号,而是同时运行所有这些广告号


我猜,
$.post()
会在完成之前返回吗?避免这种情况的最佳方法是什么?

尝试在选项中添加
async:false

$(ad_numbers).each(function() {
    ad_number = $.trim(this);

    if(!ad_number) { return true; }

    $.ajax({
        type: 'POST',
        url: '/fetch.php',
        data: {ad_number: ad_number},
        async: false,
        success: function(data, textStatus) {
            $('#log').prepend('<p>' + data + '</p>');
        }
    });
});
$(ad_编号)。每个(函数(){
ad_编号=$.trim(此);
如果(!ad_number){返回true;}
$.ajax({
键入:“POST”,
url:“/fetch.php”,
数据:{ad_编号:ad_编号},
async:false,
成功:功能(数据、文本状态){
$('#log')。前置(''+data+'

'); } }); });
AJAX是异步的
fetch.php
可能正在调用
sleep
,但JavaScript以异步模式工作,不会等待
sleep
结束