完整的callback没有被async.parallel调用

我需要做一个API调用100行来填充描述(我喜欢并行)。 然而,在这种情况下,一些行可能没有描述api将返回404.我需要显示一条警告消息,当有一行或多行没有描述,并从模态数据中删除这些行,这意味着我需要一个完整的callback或完成callback。 然而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...'); }); 

您错过了并行执行的函数的callback参数。 如果你不执行callback, 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)); } }); }