RxJS withLatestFrom

2020-10-14 10:45 更新

将源 Observable 与其他 Observable 组合以创建 Observable 其值是根据每个值的最新值计算得出的,仅当 源发出。

withLatestFrom<T, R>(...args: any[]):OperatorFunction<T, R>

参量

args 类型: any[]

returns

OperatorFunction<T, R>:最近的预测值的可观察值 每个可观察输入的值,或来自最新输入值的数组 每个输入都是可观察的。

描述

只要源 Observable 发出一个值,它就会 使用该值加上其他输入的最新值来计算公式 可观察对象,然后发出该公式的输出。

withLatestFrom marble diagram

withLatestFrom合并来源 Observable( 实例)仅在其他情况下具有其他输入 Observables 的最新值 源发出一个值,可以选择使用 project 函数来确定 要在输出 Observable 上发出的值。 所有输入的观测值必须 在输出 Observable 发出值之前,至少发出一个值。

在每个 click 事件上,发出带有最新计时器事件和 click 事件的数组

import { fromEvent, interval } from 'rxjs';
import { withLatestFrom } from 'rxjs/operators';


const clicks = fromEvent(document, 'click');
const timer = interval(1000);
const result = clicks.pipe(withLatestFrom(timer));
result.subscribe(x => console.log(x));

超载

withLatestFrom(project: (v1: T) => R): OperatorFunction<T, R>

参量 类型
项目 类型: (v1: T) => R

returns OperatorFunction<T, R> withLatestFrom(source2: O2, project: (v1: T, v2: ObservedValueOf<O2>) => R): OperatorFunction<T, R>

参量 类型
source2 类型: O2
项目 类型: (v1: T, v2: ObservedValueOf) => R

returns OperatorFunction<T, R> withLatestFrom(v2: O2, v3: O3, project: (v1: T, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>) => R): OperatorFunction<T, R>

参量 类型
v2 类型: O2
v3 类型: O3
项目 类型: (v1: T, v2: ObservedValueOf, v3: ObservedValueOf) => R

returns OperatorFunction<T, R> withLatestFrom(v2: O2, v3: O3, v4: O4, project: (v1: T, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>) => R): OperatorFunction<T, R>

参量 类型
v2 类型: O2
v3 类型: O3
v4 类型: O4
项目 类型: (v1: T, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf) => R

returns OperatorFunction<T, R>

withLatestFrom(v2: O2, v3: O3, v4: O4, v5: O5, project: (v1: T, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>) => R): OperatorFunction<T, R>

参量 类型
v2 类型: O2
v3 类型: O3
v4 类型: O4
v5 类型: O5
项目 类型: `(v1: T, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf) => R

returns OperatorFunction<T, R>

withLatestFrom(v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, project: (v1: T, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>, v6: ObservedValueOf<O6>) => R): OperatorFunction<T, R>

参量 类型
v2 类型: O2
v3 类型: O3
v4 类型: O4
v5 类型: O5
v6 类型: O6
项目 类型: (v1: T, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf, v6: ObservedValueOf) => R

returns OperatorFunction<T, R>

withLatestFrom(source2: O2): OperatorFunction<T, [T, ObservedValueOf<O2>]>

参量 类型
v2 类型: O2
                

returns OperatorFunction<T, [T, ObservedValueOf<O2>]>

withLatestFrom(v2: O2, v3: O3): OperatorFunction<T, [T, ObservedValueOf<O2>, ObservedValueOf<O3>]>

参量 类型
v2 类型: O2
v3 类型: O3

returns OperatorFunction<T, [T, ObservedValueOf<O2>, ObservedValueOf<O3>]>

withLatestFrom(v2: O2, v3: O3, v4: O4): OperatorFunction<T, [T, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>

参量 类型
v2 类型: O2
v3 类型: O3
v4 类型: O4

returns OperatorFunction<T, [T, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>

withLatestFrom(v2: O2, v3: O3, v4: O4, v5: O5): OperatorFunction<T, [T, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>

参量 类型
v2 类型: O2
v3 类型: O3
v4 类型: O4
v5 类型: O5

returns OperatorFunction<T, [T, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>

withLatestFrom(v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): OperatorFunction<T, [T, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>

参量 类型
v2 类型: O2
v3 类型: O3
v4 类型: O4
v5 类型: O5
v6 类型: O6

returns OperatorFunction<T, [T, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>

withLatestFrom(...observables: any[]): OperatorFunction<T, R>

参量 类型
可观察的 类型: any[]

returns OperatorFunction<T, R>

withLatestFrom(array: any[]): OperatorFunction<T, R>

参量 类型
数组 类型: any[]

returns OperatorFunction<T, R> withLatestFrom(array: any[], project: (...values: any[]) => R): OperatorFunction<T, R>

参量 类型
数组 类型: any[]
项目 类型: (...values: any[]) => R

returns OperatorFunction<T, R>

也可以看看

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

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号