“的JavaScript类型”;“流媒体”;对象数组

“的JavaScript类型”;“流媒体”;对象数组,javascript,node.js,ecmascript-6,streaming,es6-promise,Javascript,Node.js,Ecmascript 6,Streaming,Es6 Promise,我有一个从异步函数获得的对象数组,我想“打开一个通道”并“流化”接收到的对象。我怎样才能实现这个概念。 可能我想从代码中的不同位置将对象附加到“流”中,因此您希望定期运行异步函数或基于某个输入数组,进行异步调用并将返回数组的项作为流推送 正如@fathyb所建议的,使用流库最容易实现的,下面的示例如下: 这应该是您在几行简单的文字中所追求的: 你能详细说明你想要实现什么吗?如果你得到了一个对象数组,那么你已经拥有了所有可用的对象,那么你为什么要“流”呢它们在某个地方而不是直接传递到数组上?我正在

我有一个从异步函数获得的对象数组,我想“打开一个通道”并“流化”接收到的对象。我怎样才能实现这个概念。

可能我想从代码中的不同位置将对象附加到“流”中

,因此您希望定期运行异步函数或基于某个输入数组,进行异步调用并将返回数组的项作为流推送

正如@fathyb所建议的,使用流库最容易实现的,下面的示例如下:


这应该是您在几行简单的文字中所追求的:

你能详细说明你想要实现什么吗?如果你得到了一个对象数组,那么你已经拥有了所有可用的对象,那么你为什么要“流”呢它们在某个地方而不是直接传递到数组上?我正在逐块查询来自区块链的事务-每次我得到下一个BlockNodeJ的流的结果时,我都想将数据附加到流中,以便下一个BlockNodeJ的流可以在对象模式下运行。使用RxJS、Most.js或XStreamCurrent之类的流库我用事件实现了这一点,可能您也会尝试此解决方案事件的问题是您必须手动控制流-暂停并恢复流-因为它不会等到下一项准备就绪。超音速燃烧冲压发动机为您做了所有这些,您所需要做的只是回报一个承诺——它将使用它来跟踪并发性和流量控制。
const {DataStream} = require("scramjet");

const blocks = require("input-array.json"); // the array of inputs

const myStream = DataStream.fromArray(blocks)                
                                            // create a stream from your input array
    .setOptions({maxParallel: 1})           // make sure you're running 1 call at a time
    .map(async (block) => yourAsyncFunction(block)) 
                                            // get the data asynchronously 
                                            // and return a stream of arrays
    .flatten()                              // last - turn your arrays into a stream of
                                            // contents