了解Node.JS async.parallel

我需要从两个Web服务器请求数据。 任务是独立的; 因此,我正在使用aync.parallel 。 现在我只在我的网页上写上'abc','xyz'和'Done'。

由于任务是在同一时间执行的,我可以遇到一个奇怪的输出? 例如,

xab cyz 

代码。

 var async = require('async'); function onRequest(req, res) { res.writeHead(200, { "Content-Type" : "text/plain" }); async.parallel([ function(callback) { res.write('a'); res.write('b'); res.write('c\n'); callback(); }, function(callback) { res.write('x'); res.write('y'); res.write('z\n'); callback(); } ], function done(err, results) { if (err) { throw err; } res.end("\nDone!"); }); } var server = require('http').createServer(onRequest); server.listen(9000); 

如果您希望按打印结果的顺序完全确定,则应通过callback (第一个参数是错误)传递数据( abc\nxyz\n ),并在最终的async.parallel处理/写入它们async.parallelcallback的results参数。

 async.parallel([ one: function(callback) { callback(null, 'abc\n'); }, two: function(callback) { callback(null, 'xyz\n'); } ], function(err, results) { // results now equals to: [one: 'abc\n', two: 'xyz\n'] });