質問

Asyncモジュールを使用しています(参照してください https://github.com/caolan/async)node.jsの場合、私の質問は... なぜ滝はそんなに遅いのですか?

それには時間がかかります 4秒 このコードを実行するために...

App.post("/form", function(request, response) {

Async.waterfall([

  function(callback) {

    console.log("1.");
    callback(null, "some data");

  },

  function(data, callback) {

    console.log("2.");            
    callback(null, "some data");

  },

  function(data, callback) {

    console.log("3.");
    callback(null, "some data");              

  }

], function(error, document) {

  console.log("4.");            
  console.log("Done.");

  response.send(); // Takes 4 seconds

});

}

出力

1.
2.
// After 4 seconds
3.
4.
Done.

返信ありがとうございます!

役に立ちましたか?

解決

別のnode.jsバグです。

使用 process.nextTick 別の内側 process.nextTick 保留中 http.ServerResponse は壊れてます。

var http = require('http');
http.createServer(function(req, res) {
    var now = new Date();
    process.nextTick(function() {
        process.nextTick(function() {
            console.log(new Date() - now);
            res.writeHead({});
            res.end('foooooo');
        });
    });
}).listen(3000);

これには永遠が必要です、 async.js viaと呼ばれた他のコールバックの内側からコールバックを呼び出す process.nextTick その後、上記のバグがトリガーされます。

クイック修正:async.js ライン 63 modifiy async.nextTick 使用するだけです setTimeout.

バグ: 私は提出しました 問題 これについて。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top