Dart Stream:当发射的项目彼此紧缺时,如何合并发射的项目?

时间:2019-02-05 09:19:37

标签: dart stream

假设我有一个Stream<int>,它以不同的时间增量(即5毫秒至1000毫秒)发射整数。

当增量<= 50ms时,我要合并它们。例如:

3, (delta:100) 5, (delta:27) 6, (delta:976) 3

我要消费:3、11(使用加法合并),3。

这可能吗?

2 个答案:

答案 0 :(得分:0)

您可以使用debounceBuffer软件包中的stream_transform流转换器。

stream
  .transform(debounceBuffer(const Duration(milliseconds: 50)))
  .map((list) => list.fold(0, (t, e) => t + e))

答案 1 :(得分:0)

您可以自己写起来很容易:

<script src='https://cdn.jsdelivr.net/g/lodash@4(lodash.min.js+lodash.fp.min.js)'></script>