53

私はノード async lib - https://github.com/caolan/async#forEachを使用しており、オブジェクトを反復処理してそのインデックス キーを出力したいと考えています。完了したら、コールバックを実行したいと思います。

ここに私がこれまでに持っているものがありますが、'iterating done'見たことはありません:

    async.forEach(Object.keys(dataObj), function (err, callback){ 
        console.log('*****');

    }, function() {
        console.log('iterating done');
    });  
  1. 最終関数が呼び出されないのはなぜですか?

  2. オブジェクトのインデックス キーを出力するにはどうすればよいですか?

4

2 に答える 2

122

すべてasync.forEachの要素に対して関数を呼び出す必要があるため、最後の関数は呼び出されません。callback

次のようなものを使用します。

async.forEach(Object.keys(dataObj), function (item, callback){ 
    console.log(item); // print the key

    // tell async that that particular element of the iterator is done
    callback(); 

}, function(err) {
    console.log('iterating done');
});  
于 2012-04-30T20:43:46.283 に答える