1

次のコードを検討してください。

var http = require("http");
http.createServer(function(request, response) {
    for (var i = 0; i < 1000000; i++) {
        console.log("Request received");
    }
    response.writeHead(200, {
        "Content-Type": "text/plain"
    });
    response.write("Hello World");
    response.end();
}).listen(8888, "127.0.0.1");

このコードを実行すると、応答が得られるまで何分も待つ必要があり console.log("Request received");ます。なんで?

4

4 に答える 4

1

まず第一に、 v0.6から始めて、console.log()同期的です (つまり、メイン イベント ループをブロックします)。

リクエストごとに約17MBstdoutに書き込んでいます。サーバーが応答するまで数分かかる場合があります。

于 2013-09-26T19:51:36.883 に答える