ham*_*son 8 javascript xstream reactive-programming node.js rxjs
考虑以下两个事件流.每个事件都有timestamp/ts和value属性.
我想将事件具有相同时间戳的这两个流组合到一个带有应用的值转换的结果流中.如果一个流丢失了一个时间戳(ts=3例如下面示例中的黄色),则应忽略该时间戳.
想使用诸如xstream或rxjs之类的反应式编程库来解决问题.我对反应式编程的概念很陌生,但如果有人有另一个建议,我会全神贯注.谢谢!
只需使用combineLatest 并仅传递那些具有匹配时间戳的组合。其他组合将映射到null,稍后您将其过滤掉。
xstream 中的解决方案如下:
var streamOut = xs.combine(
(a, b) => {
if (a.ts === b.ts) {
return {ts: a.ts, value: a.value + b.value};
} else {
return null;
}
},
streamA, streamB
).filter(x => x !== null);
Run Code Online (Sandbox Code Playgroud)
检查它在 JSBin 中运行:https://jsbin.com/saxawatuza/edit?js,console。
| 归档时间: |
|
| 查看次数: |
263 次 |
| 最近记录: |