RxJS mergeMapTo

2020-10-14 10:25 更新

將每個(gè)源值投影到相同的 Observable,將其合并為多個(gè) 輸出中可觀察的時(shí)間。

mergeMapTo<T, R, O extendsObservableInput<any>>(innerObservable: O, resultSelector?: number | ((outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R), concurrent: number = Number.POSITIVE_INFINITY): OperatorFunction<T, ObservedValueOf<O> | R>

參量

內(nèi)部可觀察 一個(gè) Observable 來替換來自 來源可觀察。
resultSelector 可選的。 默認(rèn)值為 undefined。         類型: number | ((outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R)。
Simultaneously 可選的。 默認(rèn)值為 Number.POSITIVE_INFINITY。  最大輸入數(shù)  可觀察項(xiàng)被同時(shí)訂閱。

returns

OperatorFunction<T, ObservedValueOf<O> | R>:一個(gè)Observable,它發(fā)出給定項(xiàng)中的項(xiàng)innerObservable

描述

就像 mergeMap,但是總是映射每個(gè)值 到相同的內(nèi)部 Observable。

mergeMapTo marble diagram

映射的每個(gè)源值給定的可觀測 innerObservable無論 的原始值,然后將那些結(jié)果的 Observable 合并為一個(gè) single Observable,這是輸出 Observable。

對于每個(gè)點(diǎn)擊事件,每隔1秒啟動(dòng)一個(gè)間隔“可觀察的”滴答聲

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


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

也可以看看

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號