仅当值更改时才发出流

Emit a stream only if value changed

使用 xstream,我如何创建一个仅在输入流发出新值时发出的流

这是一张图

input  -----1--1-1--2-3--3--3---5-|
output -----1-------2-3---------5-|

虽然核心 xstream 库由一些精心挑选的运算符组成,但其他运算符作为附加项包含在内,可以通过它们的路径访问。

import xs from 'xstream';
import dropRepeats from 'xstream/extra/dropRepeats'

const stream = xs.of(1, 1, 1, 2, 3, 3, 3, 5)
  .compose(dropRepeats())

stream.addListener({
   next: i => console.log(i),
   error: err => console.error(err),
   complete: () => console.log('completed')
});

.compose 运算符用于将额外的方法放入流中。

来源: https://github.com/staltz/xstream/blob/master/EXTRA_DOCS.md#dropRepeats