阅读(2819) 赞(4)

RxJS withLatestFrom

2020-09-30 15:23:12 更新

将源 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>

也可以看看