RxJS CombineAll
通过 应用 combineLatest
在 Observable-of-Observables 完成时 来展平 Observable-of-Observables。
combineAll<T, R>(project?: (...values: any[]) => R): OperatorFunction
<T, R>
参量
项目 | 可选的。 默认值为 undefined 。 类型: (...values: any[]) => R 。 |
---|
returns
OperatorFunction<T, R>
:
描述
combineAll
获取一个 Observable 的 Observable,并从中收集所有 Observable。 外层 Observable 完成后, 它订阅所有收集的 Observable,并使用该 合并其值 combineLatest
策略 ,例如:
- 每当内部 Observable 发出时,输出 Observable 发出
- 当返回的 observable 发出时,它通过以下方式发出所有最新值:
- 如果 了一个 该
project
提供 函数,则使用每个内部 Observable 的每个最近值以它们的任意顺序调用 函数 到达, 的结果project
函数 就是输出 Observable 发出的结果。 - 如果没有
project
函数,则输出 Observable 发出所有最近值的数组。
- 如果 了一个 该
例子
将两个点击事件映射到可观察的有限间隔,然后应用 combineAll
import { fromEvent, interval } from 'rxjs';
import { map, combineAll, take } from 'rxjs/operators';
const clicks = fromEvent(document, 'click');
const higherOrder = clicks.pipe(
map(ev =>
interval(Math.random() * 2000).pipe(take(3))
),
take(2)
);
const result = higherOrder.pipe(
combineAll()
);
result.subscribe(x => console.log(x));
超载
combineAll(): OperatorFunction<ObservableInput<T>, T[]>
没有参数。 returnsOperatorFunction<ObservableInput<T>, T[]>
combineAll(): OperatorFunction<any, T[]>
没有参数。
returns OperatorFunction<any, T[]>
combineAll(project: (...values: T[]) => R): OperatorFunction<ObservableInput<T>, R>
参量 | 类型 |
---|---|
项目 | 类型: (...values: T[]) => R |
returns OperatorFunction<ObservableInput<T>, R>
combineAll(project: (...values: any[]) => R): OperatorFunction<any, R>
参量 | 类型 |
---|---|
项目 | 类型: (...values: any[]) => R |
returns OperatorFunction<any, R>