代码如下: 可参考相关思路
for (var i = 0; i < resp.propertiesList.length; i++) {
var documentToSend = {
indexName: indexName,
type: type,
jsonContent: blabla
};
sendDocumentAjax(resp.propertiesList[i], documentToSend)
}
function sendDocumentAjax(listObj, documentData){
listObj.ajaxStatus = 'pending';
_TOOLS.Ajax({
type: 'POST',
url: urlTest,
data: documentData,
contentType: 'application/x-www-form-urlencoded',
dataType: 'json',
success: function (dataResponse) {
listObj.ajaxStatus = 'success';
},
error: function (xhr, ajaxOptions, errorThrown) {
var errorResponse = JSON.parse(xhr.responseText);
listObj.ajaxStatus = 'error: '+ errorResponse;
}
always: checkAjaxStatuses;
});
}
function checkAjaxStatuses(){
var pending = [];
var successes = [];
var errors = [];
for (var i = 0; i < resp.propertiesList.length; i++) {
if(resp.propertiesList[i].ajaxStatus === 'pending'){
pending.push(resp.propertiesList[i]);
}
if(resp.propertiesList[i].ajaxStatus === 'success'){
successes.push(resp.propertiesList[i]);
}
if(resp.propertiesList[i].ajaxStatus.indexOf('error') !== -1){
errors.push(resp.propertiesList[i]);
}
}
console.log('ajax completed.');
console.log(pending.length + ' pending.');
console.log(successes.length + ' succeeded.');
console.log(errors.length + ' failed.');
}
链接:javascript - Ajax call in for loop wait until ALL done (error or success) - Stack Overflow