0

Node.js の非同期イベントに苦労しています。

私のアプリは、最初の HTTP GET リクエストを実行してから、レスポンスの本文にある情報に基づいて、一定の回数ループしています。

各反復で、他の HTTP GET 要求を送信する関数を呼び出し、要素配列にプッシュされた結果を返します。

私の問題は、console.log()すべての http 要求が完了したときに要素配列が必要なことです。これが私のコードです:

http.get('mysite.com', function(res) {
    var body = '';
    res.on('data', function(chunk) {
        body += chunk;
    });
    res.on('end', function() {
        var last = 5,
            elements = [];
        for(var i=0; i < last; i++) {
            elements.push(myRequest(i));
        }
        console.log(elements);
        // Do some stuff with the elements array after it has been populated
    });
}).on('error', function(error) {
    console.log(error);
});

var myRequest = function(i) {
    http.get('mysite.com/page' + i, function(res) {
        var body = '';
        res.on('data', function(chunk) {
            body += chunk;
        });
        res.on('end', function() {
            // Do parsing here
            return parsed;
        });
    }).on('error', function(error) {
        console.log(error);
    });
};

async モジュールの使用を考えましたが、このユース ケースでの使用方法がわかりません。

前もって感謝します !

4

1 に答える 1