[英]complete callback is not being called for async.parallel
我需要对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...');
});
您缺少并行执行的函数的回调参数。 如果您不执行回调, 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));
}
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.