如何让 forEach 循环等待每个 Ajax 函数完成

2024-04-10

我有一个array语句,我想循环遍历每个语句并提交给server via an ajax称呼。我必须确保每一个ajax请求在发送下一个请求之前执行,因为server边代码,我正在创建一个unique key为了这array的声明。发生的情况是,在我提交第一个请求之前,第二个请求进来,我最终创建了 2 个单独的密钥,因为它将每个密钥都视为第一次请求。我不能完全依赖超时,到目前为止我的代码继续循环。

function formPostSubmission(form){
    var parts = ['a', 'b', 'c'];
    var i = 0;
    parts.forEach(function(entry) {
        i++;
        datafield ={
            answer:entry,
            displayOrder:i,
            ajaxName:'statementPartialSubmit'
        };
        $.when(submitAjaxData(form, datafield)).then(function succesHandler(data){
            console.log("promise test "+data);
            console.log("Below request ");
        },
        function errorHandler(){
            console.log("Error occurred ");
        })
        console.log("Go for next ");
    });
}

function  submitAjaxData(form, datafield) {
    console.log(" called submitAjaxData  ");
    var loadurl = domainName + "/ajax-call-handler";
    return $.ajax({
        url: loadurl,
        method: "GET",
        data: datafield
    });
}

我希望检查响应数据是否成功,然后在循环内继续。但这就是我的console prints.

called submitAjaxData
Go for next
called submitAjaxData 
Go for next
promise test  
Below request
promise test 
Below request 

使用承诺:

 var promises = [];
 for (var i = 0; i < $total_files; i++) {
 // jQuery returns a prom 
   promises.push($.ajax({
  /* your ajax config*/
  }))
 }

Promise.all(promises)
.then(responseList => {
 console.dir(responseList)
 })
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让 forEach 循环等待每个 Ajax 函数完成 的相关文章

随机推荐