RxJS - повторное использование наблюдаемой, которая завершена - PullRequest
0 голосов
/ 23 февраля 2019

Ссылка на код в stackblitz

Есть ли способ повторить завершенную наблюдаемую несколько раз?

Скажем, у меня есть кнопка, которая при нажатии создает наблюдаемый интервалкоторый выдает 10 значений, а затем завершает:

fromEvent(button, 'click').pipe(
    switchMapTo(interval(500)),
    takeWhile(i => i < 10)
)

В подписке я хочу обрабатывать как следующие, так и полные методы:

.subscribe(
    i => console.log(i),
    () => {},
    () => console.log('completed')
);

Таким образом - первый щелчок будет издаватьодна последовательность, и как только она завершится, последующие клики больше не будут издаваться.Есть ли способ написать это так, чтобы все клики испускали последовательность?

1 Ответ

0 голосов
/ 23 февраля 2019

Я думаю, вы должны завершить внутреннюю наблюдаемую, а не всю последовательность.(takeWhile должно быть передано в интервал);

Вы должны использовать switchMap только в том случае, если вы готовы отклонить старую последовательность, как только появится новое событие щелчка. mergeMap или concatMap в противном случае.

const sequence = () => interval(500).pipe(take(10));

fromEvent(button, 'click').pipe(
    switchMap(sequence),
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...