編集:問題は解決しました(私はあまりにも早く話しました!)...(以下を見てください)
.forEachOfメソッドを使用して、特定のオブジェクトを反復処理した後にコールバックをスローしています。 唯一の問題は、forEachOfへの3番目の引数として渡された最後のコールバックがスローされていないように見えることです。
問題のサンプルコードは次のとおりです。
var async = require('async');
var anArray = [];
var testObj = {
'a': '1',
'b': '2',
'c': '3'
};
async.forEachOf(testObj, function (elem, key, callback) {
console.log(elem);
anArray.push(elem);
}, function (err) {
if (err) {
console.error(err.message);
}
console.log("This line should be printed at the end.", anArray);
});
これはRunnableにあります: http :
今、私はここで完全に間違って何かをすることができますが、私はこの質問を投稿したのreddit上/ R /ノードとスタックオーバーフロー、そして何の役に立つ回答を得ませんでした。 私はここで何が間違っているのですか? これは私を狂わせています!!!
編集:この最初の例では、「returncallback()」ステートメントを追加するのを忘れたようです。 コードで実際にこの問題が発生した特定の例では、この 'return callback()'ステートメントを作成する2番目の非同期メソッドがあります。 2番目の非同期メソッドの実行が終了したら、別の制御フロー機能を使用してコールバックを呼び出す必要があるようです。 謝罪いたします。 この問題をできるだけ早く閉じてください!!!
一方、このメソッドを使用する他の将来のユーザーにとって、「returncallback()」ステートメントを適切に使用する方法を知ることは役立つと思います。 この領域のドキュメントは間違いなく不足しており、このライブラリの個々のメソッドについては現状のままではあまりないため、ヘルプを見つけるのは非常に遅く、面倒で、困難です。
繰り返しごとに「callback()」を呼び出す必要があります。
async.forEachOf(testObj, function (elem, key, callback) {
console.log(elem);
anArray.push(elem);
callback() //<<<<<<<<<
},...
最も参考になるコメント
繰り返しごとに「callback()」を呼び出す必要があります。