RxJS withLatestFrom

2020-10-14 10:45 更新

將源 Observable 與其他 Observable 組合以創(chuàng)建 Observable 其值是根據(jù)每個(gè)值的最新值計(jì)算得出的,僅當(dāng) 源發(fā)出。

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

參量

args 類(lèi)型: any[]。

returns

OperatorFunction<T, R>:最近的預(yù)測(cè)值的可觀察值 每個(gè)可觀察輸入的值,或來(lái)自最新輸入值的數(shù)組 每個(gè)輸入都是可觀察的。

描述

只要源 Observable 發(fā)出一個(gè)值,它就會(huì) 使用該值加上其他輸入的最新值來(lái)計(jì)算公式 可觀察對(duì)象,然后發(fā)出該公式的輸出。

withLatestFrom marble diagram

withLatestFrom合并來(lái)源 Observable( 實(shí)例)僅在其他情況下具有其他輸入 Observables 的最新值 源發(fā)出一個(gè)值,可以選擇使用 project 函數(shù)來(lái)確定 要在輸出 Observable 上發(fā)出的值。 所有輸入的觀測(cè)值必須 在輸出 Observable 發(fā)出值之前,至少發(fā)出一個(gè)值。

在每個(gè) click 事件上,發(fā)出帶有最新計(jì)時(shí)器事件和 click 事件的數(shù)組

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>

參量 類(lèi)型
項(xiàng)目 類(lèi)型: (v1: T) => R

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

參量 類(lèi)型
source2 類(lèi)型: O2
項(xiàng)目 類(lèi)型: (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>

參量 類(lèi)型
v2 類(lèi)型: O2
v3 類(lèi)型: O3
項(xiàng)目 類(lèi)型: (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>

參量 類(lèi)型
v2 類(lèi)型: O2
v3 類(lèi)型: O3
v4 類(lèi)型: O4
項(xiàng)目 類(lèi)型: (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>

參量 類(lèi)型
v2 類(lèi)型: O2
v3 類(lèi)型: O3
v4 類(lèi)型: O4
v5 類(lèi)型: O5
項(xiàng)目 類(lèi)型: `(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>

參量 類(lèi)型
v2 類(lèi)型: O2
v3 類(lèi)型: O3
v4 類(lèi)型: O4
v5 類(lèi)型: O5
v6 類(lèi)型: O6
項(xiàng)目 類(lèi)型: (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>]>

參量 類(lèi)型
v2 類(lèi)型: O2
                

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

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

參量 類(lèi)型
v2 類(lèi)型: O2
v3 類(lèi)型: 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>]>

參量 類(lèi)型
v2 類(lèi)型: O2
v3 類(lèi)型: O3
v4 類(lèi)型: 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>]>

參量 類(lèi)型
v2 類(lèi)型: O2
v3 類(lèi)型: O3
v4 類(lèi)型: O4
v5 類(lèi)型: 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>]>

參量 類(lèi)型
v2 類(lèi)型: O2
v3 類(lèi)型: O3
v4 類(lèi)型: O4
v5 類(lèi)型: O5
v6 類(lèi)型: O6

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

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

參量 類(lèi)型
可觀察的 類(lèi)型: any[]

returns OperatorFunction<T, R>

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

參量 類(lèi)型
數(shù)組 類(lèi)型: any[]

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

參量 類(lèi)型
數(shù)組 類(lèi)型: any[]
項(xiàng)目 類(lèi)型: (...values: any[]) => R

returns OperatorFunction<T, R>

也可以看看

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)