W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
通過(guò)在先前內(nèi)部 Observable 尚未完成之前刪除內(nèi)部 Observable,將高階 Observable 轉(zhuǎn)換為一階 Observable。
exhaust<T>(): OperatorFunction
<any, T>
沒(méi)有參數(shù)。
OperatorFunction<any, T>
:一個(gè) Observable,它獲取 Observable 的源,并專門(mén)傳播第一個(gè) Observable,直到它完成,然后訂閱下一個(gè) Observable。
在當(dāng)前內(nèi)部 Observable 仍在執(zhí)行時(shí),通過(guò)刪除下一個(gè)內(nèi)部 Observable 來(lái)展平 Observable-of-Observables。
exhaust
訂閱發(fā)出 Observable 的 Observable,也稱為高階 Observable。每次觀察到這些內(nèi)部可觀察對(duì)象發(fā)射的一個(gè)時(shí),輸出 Observable 便開(kāi)始發(fā)射該內(nèi)部可觀察對(duì)象發(fā)射的項(xiàng)目。到目前為止,它的行為類似于mergeAll
。但是,exhaust
如果先前的 Observable 尚未完成,則 忽略每個(gè)新的內(nèi)部 Observable。完成后,它將接受并展平下一個(gè)內(nèi)部 Observable,并重復(fù)此過(guò)程。
僅當(dāng)當(dāng)前沒(méi)有活動(dòng)的計(jì)時(shí)器時(shí),才為每次點(diǎn)擊運(yùn)行一個(gè)有限的計(jì)時(shí)器
import { fromEvent, interval } from 'rxjs';
import { exhaust, map, take } from 'rxjs/operators';
const clicks = fromEvent(document, 'click');
const higherOrder = clicks.pipe(
map((ev) => interval(1000).pipe(take(5))),
);
const result = higherOrder.pipe(exhaust());
result.subscribe(x => console.log(x));
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)系方式:
更多建議: