caolan の async.jsを使用しています。すべてのイテレータが完了する前にコールバックが呼び出される理由がわかりません。次のコードを実行すると:
async.filter(matched_objects.fields, function(item, callback) {
console.log('checking field: ' + item.id);
if(item.id == 130 || item.id == 131) {
console.log('calling field true: ' + item.id);
callback(true);
}
callback(false);
},
function(fieldResults) {
console.log('fieldsResults.length=' + fieldResults.length);
});
次の出力が得られます。
checking field: 130
calling field true: 130
fieldsResults.length=1
checking field: 131
calling field true: 131
results.fields
フィルター ループで 2 番目の項目がチェックされる前に、コールバックの console.log が呼び出されることは私には意味がありません。