BACK
Reference · 29

zip

Эмитит, когда у каждого источника готова n-ая позиция.

Сигнатура

zip([a$, b$, ...]): Observable<[A, B, ...]>

Маркеры

a:        --a----b---|
b:        ----1-----2|
result:   ----[a,1]--[b,2]|

Что делает

Ждёт n-ого next от каждого источника, эмитит их вместе как кортеж, и переходит к n+1. Похоже на «застёжку» — синхронизация по индексам.

Когда использовать

Парные данные: ключи + значения, имена + аватары, шаги двух процессов, идущие в ногу.

Подводный камень

Если один источник эмитит быстрее другого — лишние значения буферизуются в памяти. Для разных скоростей чаще лучше combineLatest.

См. также

combineLatest, forkJoin, pairwise

script.ts // TypeScript
CONSOLE · Console Output
Нажмите на запуск, чтобы увидеть результат...