【问题标题】:Node.js streams and responsibility for retrieval of new dataNode.js 流和检索新数据的责任
【发布时间】:2017-06-26 07:37:12
【问题描述】:

流使我们能够对无限时间序列进行建模。

它们可以使用生成器来实现,通过next从流中检索程序想要的值。

但 Node.js 流是事件发射器,并通过 data 事件告诉程序何时处理数据。

这似乎是告诉程序何时处理新数据的责任交给了流,而不是将其留给可能最清楚自己是否可以处理新数据的程序。

这两种方法(推式和拉式)有名称吗?何时使用?

【问题讨论】:

    标签: javascript stream


    【解决方案1】:

    但是有一个可用于流(通常称为流2)的推/拉方法集,我同意它的使用仍然相当复杂,并且生成器被多次提出作为可能的解决方案。

    我在我的Scramjet 框架中实现了这个,所以一个非常简单的流生成器​​看起来像这样:

    const dat = [1,2,3,4];
    const iter = (function* () { yield* dat; })();
    exports.stream = () => DataStream.fromIterator(iter);
    

    您可以使用scramjet repo here 中的nodeunit 运行测试用例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-03
      • 2020-04-12
      • 2018-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-24
      • 1970-01-01
      相关资源
      最近更新 更多