RxJS mergeMap

2020-10-14 10:24 更新

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

mergeMap<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)目 功能 應(yīng)用于源 Observable 發(fā)出的項(xiàng)目時(shí),返回一個(gè) 可觀察的。
resultSelector 可選的。 默認(rèn)值為 undefined。         類型: number | ((outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R)。
同時(shí) 可選的。 默認(rèn)值為 Number.POSITIVE_INFINITY。  最大輸入數(shù)  可觀察項(xiàng)被同時(shí)訂閱。

returns

OperatorFunction<T, ObservedValueOf<O> | R>:一個(gè) Observable,發(fā)出應(yīng)用 投影功能(以及不推薦使用的可選功能 resultSelector每個(gè)項(xiàng)目的 ) 源 Observable 發(fā)出并合并 Observable 的結(jié)果 從此轉(zhuǎn)換中獲得。

描述

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

mergeMap marble diagram

返回一個(gè) Observable,它根據(jù)應(yīng)用的函數(shù)發(fā)射項(xiàng)目 提供給源 Observable 發(fā)出的每個(gè)項(xiàng)目,該函數(shù)在哪里 返回一個(gè) Observable ,然后合并那些結(jié)果 Observable 和 發(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
defaultValue 可選的。 默認(rèn)值為 undefined。類型: number

returns OperatorFunction<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
defaultValue 可選的。 默認(rèn)值為 undefined.類型: number

returns OperatorFunction<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
defaultValue 可選的。 默認(rèn)值為 undefined。類型: `number

returns OperatorFunction<T, R>

也可以看看

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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)