Например, у меня есть наблюдаемое, которое выдает 10-секундный таймер каждые 5 секунд. Я могу использовать сканирование для создания наблюдаемого, которое испускает массив всех внутренних наблюдаемых объектов, выпущенных на данный момент:
tick = 5000
tock = 1000
timers = Observable.interval(tick).scan( (acc, next) => {
let timer = Observable.interval(tock).take(10);
return acc.concat([timer]);
}, []);
Но что, если я хочу испустить его, чтобы испустить массив всех «живых» таймеров (то есть тех, которые еще не вызывали complete
)?
Вот дерьмовая мраморная диаграмма ascii того, о чем я думаю:
-A--B-----
\ \
\ \
\ x
x
| | |
[A][A,B] []
Есть ли способ сделать это с помощью стандартных операторов, или это просто не идиоматическая вещь, которую нужно делать с rxjs?