Например:
const s = rxjs.interval(2000).pipe(tap(console.log), shareReplay(1))
const b = s.subscribe(v => {})
// wait, console will begin output 0, 1, 2, 3, ...
b.unsubscribe()
// console will continue output 4, 5, 6, 7, ...
Я хочу, чтобы мой поток был приостановлен, когда нет подписчиков для сохранения загрузки ЦП.
Как приостановить поток, когда нет подписчиков?
Цель состоит в том, чтобы позволить нескольким подписчикам совместно использовать один поток.
- Когда приходит первый подписчик, поток будет начинаться с начального значения и периодически предоставлять данные.
- Когда приходит новый подписчик, он получает самое последнее значение в потоке.
- Когда все подписчики ушли, поток данных можно безопасно закрыть, следующий пришедший будет рассматриваться как первый.