RxJS flatMap

2020-10-14 10:15 更新

將每個(gè)源值投影到一個(gè) Observable,將其合并到輸出 Observable 中。

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

參量

項(xiàng)目 當(dāng)應(yīng)用于源 Observable 發(fā)出的項(xiàng)目時(shí),返回 Observable 的函數(shù)。
resultSelector 可選的。默認(rèn)值為undefined。類型:。number | ((outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R)
同時(shí) 可選的。默認(rèn)值為Number.POSITIVE_INFINITY。并發(fā)訂閱的最大輸入Observable數(shù)。

returns

OperatorFunction<T, ObservedValueOf<O> | R>:一個(gè) Observable,它發(fā)出的結(jié)果是resultSelector對(duì)源 Observable 發(fā)出的每個(gè)項(xiàng)目應(yīng)用投影函數(shù)(和可選的不推薦使用),并合并從此轉(zhuǎn)換獲得的 Observables 的結(jié)果。

描述

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

mergeMap大理石圖

返回一個(gè) Observable,它基于將您提供的函數(shù)應(yīng)用于源 Observable 發(fā)出的每個(gè)項(xiàng)目而發(fā)出項(xiàng)目,該函數(shù)返回 Observable,然后合并這些結(jié)果 Observables 并發(fā)出此合并的結(jié)果。

將每個(gè)字母映射并展平為“觀察到的”滴答聲,每隔1秒

import { of, interval } from 'rxjs';
import { mergeMap, map } from 'rxjs/operators';


const letters = of('a', 'b', 'c');
const result = letters.pipe(
  mergeMap(x => interval(1000).pipe(map(i => x+i))),
);
result.subscribe(x => console.log(x));


// Results in the following:
// a0
// b0
// c0
// a1
// b1
// c1
// continues to list a,b,c with respective ascending integers

超載

mergeMap(project: (value: T, index: number) => O, concurrent?: number): OperatorFunction<T, ObservedValueOf<O>>

參量 類型
項(xiàng)目 類型:(value: T, index: number) => O
concurrent 可選的默認(rèn)值為undefined。類型:number

returnsOperatorFunction<T, ObservedValueOf<O>>

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

參量 類型
項(xiàng)目 類型:(value: T, index: number) => O
resultSelector 類型:undefined
concurrent 可選的。默認(rèn)值為undefined。類型:number

returnsOperatorFunction<T, ObservedValueOf<O>>

mergeMap(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction<T, R>

參量 類型
項(xiàng)目 類型:(value: T, index: number) => O
resultSelector 類型:(outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R
concurrent 可選的。默認(rèn)值為undefined。類型:number

returnsOperatorFunction<T, R>

也可以看看

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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)