在javascript中提交多个set / post ajax调用

问题描述 投票:-2回答:1

我做了很多谷歌搜索,看看其他人的答案,到目前为止,没有人为我工作。我正在尝试做的简短摘要;

  1. 使用新日期深度复制日历事件
  2. 新日历事件已发布到数据库中
  3. 使用数量不同的多个日期执行此操作

目前,我正在使用例如;

function cloneEvent() {
    array = {date 1, date 2, date 3};
    array.forEach() {
        saveEvent(item);
    }
}

function saveEvent(eventDate) {
    //do stuff based on this eventDate
    $.ajax({
        ...
        success: function (response) {
            //update the event popup
            //refresh the event grid
            //inform user of success
        }
    }
}

问题是,在第一次成功之后,它再也不会回过头来,而forEach的其余部分将用于其他项目。

我已经尝试过使用延迟的对象,回调,将ajax调用设置为同步,为saveEvent函数的每个后续调用设置超时,在成功事件中调用返回等。我不认为回调实际上可用于但是由于我在通知数据后不处理数据,因此可以实现此实现。

[发送第一个请求后,我如何继续提交正在进行的ajax请求?

谢谢。

javascript ajax loops post
1个回答
0
投票

基本上,您正在做的是同时发送所有保存事件。相反,您可以在回调中调用下一个保存:

var array = [date1, date2, date3];
saveEvent(array);

function saveEvent(array) {
  if (!array || array.length == 0) return; // no more elements
  var dateToSave = array.shift(); // remove first element
  $.ajax({
    // save dateToSave
    success: function (response) {
      //update the event popup
      //refresh the event grid
      //inform user of success
      saveEvent(array);
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.