コンテンツにスキップ

merge

複数の Observable を、すべてのソースからのすべての値を発行する単一の Observable にマージします。 いずれかのソース Observable が値を発行するたびに発行します。

Timeline of observable eventsC1C2C3Timeline of observable eventsK1K2K3
merge
Timeline of observable eventsC1K1C2K2C3K3
// Timeline:
//
// clicks$ c1 c2 c3
// keys$ k1 k2 k3
// events$ c1 k1 c2 k2 c3 k3
//
// Explanation:
// - merge combines multiple observables into one
// - Emits values from any source as they arrive
// - Order is preserved based on emission time
const clicks$ = source<string>();
const keys$ = source<string>();
const events$ = merge([clicks$, keys$]);
const valueHistory: string[] = [];
events$.subscribe((event_) => {
valueHistory.push(event_);
});
clicks$.next('c1');
assert.deepStrictEqual(valueHistory, ['c1']);
keys$.next('k1');
assert.deepStrictEqual(valueHistory, ['c1', 'k1']);
clicks$.next('c2');
keys$.next('k2');
assert.deepStrictEqual(valueHistory, ['c1', 'k1', 'c2', 'k2']);

View source on GitHub