Bre*_*dan 2 operators reactive-programming rxjs
我有一个发出 numbers 的流x。我想要的是dx(在 x 中的差异)所以我需要一个滚动缓冲区,它可以发出x_n,x_(n-1)所以我可以映射到dx = x_n - x_(n-1). 在大理石图中,这看起来像......
SOURCE --A------B------C--------D------F--G-----
RESULT ---------AB-----BC-------CD-----DF-FG----
Run Code Online (Sandbox Code Playgroud)
这对于滚动平均线等其他操作非常方便。
我检查了操作员文档,但似乎找不到任何类似的东西。sample有点接近,但取决于时间。buffer也很接近,但它严格地将值排队,缓冲区之间没有重叠。
我正在使用 RxJS
RXJS 5
RxJS 的bufferCount操作符如下所示......
observable = Rx.Observable.from(["A", "B", "C", "D", "E", "F"])
bufferSize = 2
overlap = 1
observable.bufferCount(bufferSize, overlap)
.subscribe(vals => console.log(vals));
// Results in,
//
// ["A", "B"]
// ["B", "C"]
// ...
Run Code Online (Sandbox Code Playgroud)
overlap实际上是采样频率,因此例如在上述情况下,如果overlap = 2那么我们将获得正常buffer行为。
| 归档时间: |
|
| 查看次数: |
1493 次 |
| 最近记录: |