ReferenceswitchMap
Reference · 21
switchMap
switchMap
Переключается на новый внутренний поток, отменяя предыдущий.
Сигнатура
switchMap(project: (value: T, index: number) => ObservableInput): OperatorFunction
Маркеры
outer: --a---b---c---|
inner(a): xxxxx (cancelled)
inner(b): xxxxx (cancelled)
result: --------------c-c-c-|
Что делает
На каждое значение из outer запускает project(value) — внутренний Observable. Подписывается на него, а от предыдущего внутреннего отписывается. Внешние эмиты потока — это эмиты только текущего внутреннего.
Когда использовать
Typeahead-поиск (последний запрос важнее, прошлые отменяются), переход на новую страницу (отменяем старый запрос), реакция на смену параметра.
Подводный камень
Опасно для критичных submit-операций — внутренний запрос может быть отменён посередине. Для submit используйте exhaustMap или concatMap.
См. также
mergeMap, concatMap, exhaustMap
script.ts
CONSOLE · Console Output
Нажмите на запуск, чтобы увидеть результат...