为什么瀑布这么慢?
我正在使用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.js
第63
行修改async.nextTick
只使用setTimeout
。
错误:我已经提出了这个问题 。