javascript - 了解 Node.JS async.parallel

标签 javascript node.js parallel-processing

我需要从两个 Web 服务器请求数据。任务是独立的;因此,我使用 aync.parallel .现在我只在网页正文中写入“abc”、“xyz”和“完成”。

由于任务是同时执行的,我会遇到奇怪的输出吗?例如,

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);

最佳答案

如果您想绝对确定打印结果的顺序,您应该通过 callbacks 传递您的数据(abc\nxyz\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'
});

关于javascript - 了解 Node.JS async.parallel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20186081/

相关文章:

node.js - Node.JS 服务器每秒可以发送多少数据?

c++:为其他函数锁定互斥锁但本身可以并行执行的函数

javascript - Duktape 有在 Linux 中执行外部程序的功能吗?

javascript - 如何获得圆形和矩形上笔画虚线数组的精确数量?

javascript - Promise.all() 有限制吗?

node.js - 如何开发支持 Multi-Tenancy 的 Node.js 应用程序

javascript - html5 javascript 工作流程图生成器

types - 区分Node原生函数和匿名函数

parallel-processing - 并行计算 - Shuffle

Python多处理: How to shutdown a long running process that is a sequence of actions