RxJS withLatestFrom

2020-10-14 10:45 更新

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

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

參量

args 類型: any[]。

returns

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

描述

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

withLatestFrom marble diagram

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

在每個 click 事件上,發(fā)出帶有最新計時器事件和 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>

參量 類型
項目 類型: (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>

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

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

參量 類型
數(shù)組 類型: any[]
項目 類型: (...values: any[]) => R

returns OperatorFunction<T, R>

也可以看看

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號