我需要对100行进行api调用以填充描述(我更喜欢并行执行)。但是有些行可能没有描述,在这种情况下,api将返回404.我需要在没有描述的行或行中显示警告消息,并从模态数据中删除这些行,这意味着我需要完整的回调或完成回调。然而,completeCallback没有被调用,我“认为”它是因为某些行没有描述。
你能告诉我如何实现这个目标吗?
这是我的代码:
function getDescription(processedData) {
$.ajax({
url: baseApiUrl + '/Summary?id=' + processedData.id,
type: 'GET',
dataType: 'json',
contentType: 'application/json',
success: function (data) {
processedData.SummaryDescription = data;
},
error: function (xhr, status, e) {
if(xhr.statusCode === 404){
processedData.SummaryDescription = '';
}else{
}
}
});
};
//Below line is in a look
parallelCallArray.push(getDescription.bind(null, processedData));
//Below line is out of loop
Async.parallel(parallelCallArray, function(err, result){
console.log('all calls completed...');
});
答案 0 :(得分:2)
您错过了并行执行的函数的回调参数。如果您没有执行回调,async
将假设您的功能尚未完成。尝试这样的事情:
function getDescription(processedData, cb) {
$.ajax({
url: baseApiUrl + '/Summary?id=' + processedData.id,
type: 'GET',
dataType: 'json',
contentType: 'application/json',
success: function (data) {
processedData.SummaryDescription = data;
cb();
},
error: function (xhr, status, e) {
if (xhr.statusCode === 404) {
processedData.SummaryDescription = '';
} else {
}
cb(new Error(e));
}
});
}