W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
將高階 Observable 轉(zhuǎn)換為的一階 Observable 將內(nèi)部的 Observable 依次排列。
concatAll<T>(): OperatorFunction
<ObservableInput
<T>, T>
沒有參數(shù)。
OperatorFunction<ObservableInput<T>, T>
:從所有內(nèi)部可見的發(fā)射值 觀察值串聯(lián)在一起。
通過放置一個(gè)可觀察的數(shù)來展平 內(nèi)在可觀之后。
將源發(fā)出的每個(gè) Observable(高階 Observable)加入 系列時(shí)尚。 它僅在 先前的內(nèi)部 Observable 已完成,并將它們的所有值合并到 返回的可觀察值。
警告: 如果源 Observable 迅速發(fā)出 Observable,并且 無休止地發(fā)出,而內(nèi)部的 Observables 發(fā)出的速度通常比 源發(fā)出,您可能會(huì)遇到內(nèi)存問題,因?yàn)閭魅氲?Observable 收集在無界緩沖區(qū)中。
注意: concatAll
等效于 mergeAll
并發(fā)參數(shù)設(shè)置 到 1
。
對(duì)于每個(gè)單擊事件,請(qǐng)從0到3每秒進(jìn)行一次滴答,無需并發(fā)
import { fromEvent, interval } from 'rxjs';
import { map, take, concatAll } from 'rxjs/operators';
const clicks = fromEvent(document, 'click');
const higherOrder = clicks.pipe(
map(ev => interval(1000).pipe(take(4))),
);
const firstOrder = higherOrder.pipe(concatAll());
firstOrder.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
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: