Замените Observable, у которого уже есть подписчики, другими Observable - PullRequest
0 голосов
/ 16 мая 2019

У меня есть Observable, который позже получает "заменить" другим Observable.

Как я могу поменять Observable, не теряя своих подписчиков?

const source = NEVER

const source2 = interval(1000);

source.subscribe(x => console.log(x));

// source.switch(source2)

source.switch(source2) явно недопустимая операция. Но это демонстрирует, чего я хотел бы достичь. Тот же пример на StackBlitz:

https://stackblitz.com/edit/rxjs-76a7ew

Что мне нужно будет сделать после подписки, чтобы этот код начал печатать числа с interval?

1 Ответ

0 голосов
/ 16 мая 2019

, так что вы хотите переключиться на источник2

source.pipe(
 switchMap(() => source2)
).subscribe(x => console.log(x)); // x here is source2

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...