繁体   English   中英

与高地js并行的管道节点流

[英]pipe node streams in parallel with highland js

我有一个要并行使用的异步节点流数组,在高地js中有一种简单的方法吗? 我试图让所有这些数组都通过一个聚合函数。

您是否要执行以下操作:

const request = require('request');
const nodeStreams = [request('http://www.example.com'),
                     request('http://www.example1.com')];

hl(nodeStreams)
.map(hl)
.merge()
.map(JSON.parse)
.each(console.log);

我会解释这里发生了什么。 您首先从Node流数组开始,然后使用map将其转换为Highland流,因此现在有了流。 然后, merge功能将所有值合并到单个流中。 所有这些流将并行读取,但map(JSON.parse)只能在它们上调用一次。 如果您想对更多的计算进行并行处理,那么在调用merge之前,您想对每个流做同样的事情:

hl(nodeStreams)
.map(stream => hl(stream).map(JSON.parse))
.merge().each(console.log);

如果请求的顺序很重要,则应使用parallel但这会产生性能开销,因为该功能必须跟踪所有不同的流。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM