なぜ滝はそんなに遅いのですか?
-
09-10-2019 - |
質問
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
.
バグ: 私は提出しました 問題 これについて。
所属していません StackOverflow