W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
遞歸地將每個(gè)源值投影到一個(gè) Observable,將其合并到輸出 Observable 中。
expand<T, R>(project: (value: T, index: number) => any, concurrent: number = Number
.POSITIVE_INFINITY, scheduler: SchedulerLike
= undefined): OperatorFunction
<T, R>
項(xiàng)目 | 當(dāng)應(yīng)用于源或輸出 Observable 發(fā)出的項(xiàng)目時(shí),返回 Observable的函數(shù)。 |
---|---|
同時(shí) | 可選的。默認(rèn)值為Number.POSITIVE_INFINITY 。并發(fā)訂閱的最大輸入 Observable 數(shù)。 |
調(diào)度器 | 可選的。默認(rèn)值為undefined 。在SchedulerLike 使用用于訂閱每個(gè)投影內(nèi)觀察到。 |
OperatorFunction<T, R>
:一個(gè) Observable,它發(fā)出源值,并且還會(huì)對(duì)輸出 Observable 上發(fā)出的每個(gè)值應(yīng)用投影函數(shù),并合并從此變換獲得的 Observables 的結(jié)果。
它類(lèi)似于mergeMap
,但是將投影函數(shù)應(yīng)用于每個(gè)源值以及每個(gè)輸出值。它是遞歸的。
返回一個(gè) Observable,它基于將您提供的函數(shù)應(yīng)用于源 Observable 發(fā)出的每個(gè)項(xiàng)目而發(fā)出項(xiàng)目,該函數(shù)返回 Observable,然后合并這些結(jié)果 Observables 并發(fā)出此合并的結(jié)果。擴(kuò)展將在輸出 Observable 上重新發(fā)射每個(gè)源值。然后,將每個(gè)輸出值提供給該project
函數(shù),該 函數(shù)返回一個(gè)內(nèi)部 Observable,以將其合并到輸出 Observable 中。由投影得出的那些輸出值也被賦予project
函數(shù)以產(chǎn)生新的輸出值。這是 擴(kuò)展遞歸行為的方式。
每次點(diǎn)擊就開(kāi)始發(fā)出 2 的冪,最多 10 次
import { fromEvent, of } from 'rxjs';
import { expand, mapTo, delay, take } from 'rxjs/operators';
const clicks = fromEvent(document, 'click');
const powersOfTwo = clicks.pipe(
mapTo(1),
expand(x => of(2 * x).pipe(delay(1000))),
take(10),
);
powersOfTwo.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)系方式:
更多建議: