Concat
испускать излучения двух или более наблюдаемых, не чередуя их1
Оператор Concat объединяет выходные данные нескольких наблюдаемых, так что они действуют как одна наблюдаемая, причем все элементы, испускаемые первой наблюдаемой, испускаются до любого из элементов, испускаемых второй наблюдаемой (и т. Д., Если есть больше двух).
Concat ожидает подписки на каждую дополнительную Наблюдаемую информацию, которую вы передаете ей, пока не завершится предыдущая Наблюдаемая. Обратите внимание, что из-за этого, если вы попытаетесь объединить «горячий» Observable, то есть тот, который начинает испускать элементы немедленно и до того, как он подписан, Concat не будет видеть и, следовательно, не будет испускать любые элементы, которые Observable испускает раньше все предыдущие наблюдаемые завершены, и Concat подписывается на «горячую» наблюдаемую.
RxJs Примеры для Concat:
Пример 1. Базовое использование конкатов с тремя наблюдаемыми
// RxJS v6+
import { of, concat } from 'rxjs';
concat(
of(1, 2, 3),
// subscribed after first completes
of(4, 5, 6),
// subscribed after second completes
of(7, 8, 9)
)
// log: 1, 2, 3, 4, 5, 6, 7, 8, 9
.subscribe(console.log);
Пример 2: конкат с задержкой наблюдаемой
// RxJS v6+
import { of, concat } from 'rxjs';
import { delay } from 'rxjs/operators';
concat(
of(1, 2, 3).pipe(delay(3000)),
// after 3s, the first observable will complete and subsquent observable subscribed with values emitted
of(4, 5, 6)
)
// log: 1,2,3,4,5,6
.subscribe(console.log);