RxJS mergeMapTo

2020-10-14 10:25 更新

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

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)部可觀察 一個 Observable 來替換來自 來源可觀察。
resultSelector 可選的。 默認值為 undefined。         類型: number | ((outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R)
Simultaneously 可選的。 默認值為 Number.POSITIVE_INFINITY。  最大輸入數(shù)  可觀察項被同時訂閱。

returns

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

描述

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

mergeMapTo marble diagram

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

對于每個點擊事件,每隔1秒啟動一個間隔“可觀察的”滴答聲

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

公眾號
微信公眾號

編程獅公眾號