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; }