为什么瀑布这么慢?

我正在使用asynchronous模块(请参阅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错误。

在挂起的http.ServerResponse期间,在另一个process.nextTick中使用process.nextTick被破坏。

 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调用通过process.nextTick调用的其他callback内部的callback,然后导致上述错误被触发。

快速修复:async.js63行修改async.nextTick只使用setTimeout

错误:我已经提出了这个问题 。