2つのWebサーバーからデータを要求する必要があります。タスクは独立しています。したがって、私は aync.parallel を使用しています。現在、Webページの本文に「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);
結果を印刷する順序を完全に確実にしたい場合は、データ(abc\n
およびxyz\n
) コールバック (最初のパラメーターはエラーです)を介して、最後のasync.parallel
コールバックのresults
引数。
async.parallel({
one: function(callback) {
callback(null, 'abc\n');
},
two: function(callback) {
callback(null, 'xyz\n');
}
}, function(err, results) {
// results now equals to: results.one: 'abc\n', results.two: 'xyz\n'
});