W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
將每個源值投影到一個 Observable 中,將其合并到輸出中 可觀察,以序列化的方式等待每個完成之前 合并下一個。
concatMap<T, R, O extendsObservableInput
<any>>(project: (value: T, index: number) => O, resultSelector?: (outerValue: T, innerValue: ObservedValueOf
<O>, outerIndex: number, innerIndex: number) => R):OperatorFunction
<T, ObservedValueOf
<O> | R>
項目 | 功能 應(yīng)用于源 Observable 發(fā)出的項目時,返回一個 可觀察的。 |
---|---|
resultSelector | 可選的。 默認值為 undefined 。 類型: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R 。 |
OperatorFunction<T, ObservedValueOf<O> | R>
:一個 Observable,發(fā)出應(yīng)用 投影函數(shù)(和可選的不推薦使用 resultSelector
每個發(fā)射項目的 ) 來源觀察到并從每個投影內(nèi)部獲取值 依序可觀察。
將每個值映射到一個 Observable,然后展平所有 這些內(nèi)部 Observable 使用 concatAll
。
返回一個 Observable,它根據(jù)應(yīng)用的函數(shù)發(fā)射項目 提供給源 Observable 發(fā)出的每個項目,該函數(shù)在哪里 返回一個(所謂的“內(nèi)部”)Observable。 每個新的內(nèi)部 Observable 是 與先前的內(nèi)部 Observable 串聯(lián)。
警告: 如果源值無休止地到達并且比它們更快地到達 相應(yīng)的內(nèi)部 Observables 可以完成,這將導(dǎo)致內(nèi)存問題 當內(nèi)部 Observable 聚集在一個無界緩沖區(qū)中時,它們等待轉(zhuǎn)向 被訂閱。
注意: concatMap
等效于 mergeMap
并發(fā)參數(shù)設(shè)置 到 1
。
對于每個單擊事件,請從 0 到 3 每秒進行一次滴答,無需并發(fā)
import { fromEvent, interval } from 'rxjs';
import { concatMap, take } from 'rxjs/operators';
const clicks = fromEvent(document, 'click');
const result = clicks.pipe(
concatMap(ev => interval(1000).pipe(take(4)))
);
result.subscribe(x => console.log(x));
// Results in the following:
// (results are not concurrent)
// For every click on the "document" it will emit values 0 to 3 spaced
// on a 1000ms interval
// one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3
concatMap(project: (value: T, index: number) => O): OperatorFunction<T, ObservedValueOf<O>>
參量 | 類型 |
---|---|
項目 | 類型: (value: T, index: number) => O |
returns OperatorFunction<T, ObservedValueOf<O>>
`
concatMap(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction<T, ObservedValueOf<O>> `
參量 | 類型 |
---|---|
項目 | 類型: (value: T, index: number) => O |
resultSelector | 類型: undefined |
returns OperatorFunction<T, ObservedValueOf<O>>
concatMap(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>
參量 | 類型 |
---|---|
項目 | 類型: (value: T, index: number) => O |
resultSelector | 類型: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R |
returns OperatorFunction<T, R>
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: