codecamp

RxJS withLatestFrom

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

也可以看看

RxJS windowWhen
RxJS zip(已弃用)
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

RxJS operators

RxJS fetch

RxJS testing

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }