RxJS exhaustMap

2020-10-14 10:10 更新

將每個源值投影到一個 Observable,只有在先前的可預(yù)測 Observable 完成時,該值才合并到 Observable 輸出中。

exhaustMap<T, R, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector?: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, ObservedValueOf<O> | R>

參量

項目 當(dāng)應(yīng)用于源 Observable 發(fā)出的項目時,返回 Observable 的函數(shù)。
resultSelector 可選的。默認(rèn)值為undefined。類型:。(outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R

returns

OperatorFunction<T, ObservedValueOf<O> | R>:一個 Observable,其中包含源中每個項目的預(yù)計可觀測值,而忽略在其先前的 Observable 完成之前開始的預(yù)計可觀測值。

描述

將每個值映射到一個 Observable,然后使用展平所有這些內(nèi)部 Observable exhaust。

exhaustMap大理石圖

返回一個 Observable,它基于將您提供的函數(shù)應(yīng)用于源 Observable 發(fā)出的每個項目而發(fā)出項目,其中該函數(shù)返回一個(所謂的“內(nèi)部”)Observable。當(dāng)將源值投影到 Observable 時,輸出 Observable 開始發(fā)出該投影的 Observable 發(fā)出的項目。但是,exhaustMap如果先前的可觀測值尚未完成,則忽略每個新的可觀測值。完成后,它將接受并展平下一個預(yù)計的 Observable,并重復(fù)此過程。

僅當(dāng)當(dāng)前沒有活動的計時器時,才為每次點擊運行一個有限的計時器

import { fromEvent, interval } from 'rxjs';
import { exhaustMap, take } from 'rxjs/operators';


const clicks = fromEvent(document, 'click');
const result = clicks.pipe(
  exhaustMap(ev => interval(1000).pipe(take(5)))
);
result.subscribe(x => console.log(x));

超載

exhaustMap(project: (value: T, index: number) => O): OperatorFunction<T, ObservedValueOf<O>>

參量 類型
項目 類型:(value: T, index: number) => O

returnsOperatorFunction<T, ObservedValueOf<O>>

exhaustMap(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction<T, ObservedValueOf<O>>

參量 類型
項目 類型:(value: T, index: number) => O
resultSelector 類型:undefined

returnsOperatorFunction<T, ObservedValueOf<O>>

exhaustMap(project: (value: T, index: number) => any, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>

參量 類型
項目 類型:(value: T, index: number) => any
resultSelector 類型:(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R

returnsOperatorFunction<T, R>

也可以看看

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號