作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 array
语句,我想遍历每个语句并通过 ajax
调用提交给 server
。我必须确保在发送下一个请求之前执行每个 ajax
请求,因为在 server
端代码上,我正在创建一个 unique key
对于这个 array
语句。发生的事情是在我提交第一个请求之前,第二个请求进来了,我最终创建了 2 个单独的 key ,因为它将每个 key 都视为第一次请求。我不能完全依赖超时,到目前为止我的代码继续循环。
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
打印的方式。
called submitAjaxData
Go for next
called submitAjaxData
Go for next
promise test
Below request
promise test
Below request
最佳答案
使用 promise :
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)
})
关于javascript - 如何让 forEach 循环等待每个 Ajax 函数完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53275216/
我是一名优秀的程序员,十分优秀!