RxJS CombineAll

2020-10-14 09:53 更新

通过 应用 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 marble diagram

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>

也可以看看

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号