Сбор неполных на данный момент наблюдаемых в наблюдаемой rxjs более высокого порядка

Например, у меня есть наблюдаемое, которое выдает 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?


person Coquelicot    schedule 12.08.2016    source источник


Ответы (1)


Вы должны иметь возможность использовать «активный» метод, описанный в этом ответе, для достижения желаемого:

Rx: zip-подобный оператор, который продолжается после завершения одного из потоков?

person Matt Burnell    schedule 14.08.2016