例如,我有一个可观测量,每5秒发出一个10秒的计时器。我可以使用scan来创建一个observable,它发出到目前为止发出的所有内部observable的数组:
tick = 5000
tock = 1000
timers = Observable.interval(tick).scan( (acc, next) => {
let timer = Observable.interval(tock).take(10);
return acc.concat([timer]);
}, []);
但是,如果我想发射它以发出所有" live"计时器(即那些尚未被称为complete
的人)?
这是我想到的蹩脚的ascii大理石图:
-A--B-----
\ \
\ \
\ x
x
| | |
[A][A,B] []
有没有办法使用标准运算符来执行此操作,或者这不是尝试使用rxjs的惯用内容?
答案 0 :(得分:1)
你应该可以使用" active"在这个答案中描述的方法实现了你想要的:
Rx: a zip-like operator that continues after one of the streams ended?