0

node.js では、複数のコールバックからいくつかのデータを収集し、それらを 1 つのオブジェクトに格納する必要があります。以下のコードを試してみましたが、収集したデータが初期化された変数に保存されません。私が間違っていることを助けてもらえますか?

私のコード:

for (var x in data) {
    var status = {items: []};

    for (var y in x) {
        do_something(y, function (err, res) {
            again_do_something(res, function(err, result) {
                status.items.push({key: result});
            });
         });
     }

     console.log(status); //Here I got only {items: []}
}
4

1 に答える 1

3
console.log(status);

コールバック関数が実行される前に実行されます。それがあなたが空を見ている理由です。

この一般的な問題を解決する簡単な方法の 1 つは、非同期ライブラリの concat メソッドを使用することです。

于 2013-10-12T12:07:12.997 に答える