take
ソース Observable の最初の n 個の発行のみを取得し、完了します。
Marble Diagram
Section titled “Marble Diagram”take(3)
// Timeline://// num$ 1 2 3 4 (ignored)// taken$ 1 2 3 | (completes)//// Explanation:// - take emits only the first n values, then completes// - Subsequent emissions from the source are ignored
const num$ = source<number>();
const taken$ = num$.pipe(take(3));
const valueHistory: number[] = [];
taken$.subscribe((x) => { valueHistory.push(x);});
num$.next(1);
num$.next(2);
num$.next(3);
assert.deepStrictEqual(valueHistory, [1, 2, 3]);
num$.next(4); // ignored (already completed)
assert.deepStrictEqual(valueHistory, [1, 2, 3]);