W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
將每個(gè)源值投影到一個(gè) Observable,將其合并到輸出 Observable中,僅從最近投影的 Observable 發(fā)出值。
switchMap<T, R, O extends ObservableInput
<any>>(project: (value: T, index: number) => O, resultSelector?: (outerValue: T, innerValue: ObservedValueOf
<O>, outerIndex: number, innerIndex: number) => R): OperatorFunction
<T, ObservedValueOf
<O> | R>
項(xiàng)目 | 當(dāng)應(yīng)用于源 Observable 發(fā)出的項(xiàng)目時(shí),返回 Observable 的函數(shù)。 |
---|---|
resultSelector | 可選的。默認(rèn)值為undefined 。類型:。(outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R |
OperatorFunction<T, ObservedValueOf<O> | R>
:一個(gè) Observable,它發(fā)出對resultSelector
源 Observable 發(fā)出的每個(gè)項(xiàng)目應(yīng)用投影函數(shù)(和可選的不推薦使用)的結(jié)果,并且僅從最近投影的內(nèi)部 Observable 中獲取值。
將每個(gè)值映射到一個(gè) Observable,然后展平所有這些內(nèi)部 Observable。
返回一個(gè) Observable,它基于將您提供的函數(shù)應(yīng)用于源 Observable 發(fā)出的每個(gè)項(xiàng)目而發(fā)出項(xiàng)目,其中該函數(shù)返回一個(gè)(所謂的“內(nèi)部”)Observable。每當(dāng)它觀察到這些內(nèi)部 Observable 中的一個(gè)時(shí),輸出 Observable 就開始發(fā)出該內(nèi)部 Observable 發(fā)出的項(xiàng)目。發(fā)出新的內(nèi)部 Observable 時(shí),switchMap
停止從較早發(fā)出的內(nèi)部 Observable 發(fā)出項(xiàng)目,并開始從新的內(nèi)部 Observable 發(fā)出項(xiàng)目。對于后續(xù)的內(nèi)部 Observable,它繼續(xù)像這樣運(yùn)行。
根據(jù)源可觀測值生成新的可觀測值
import { of } from 'rxjs';
import { switchMap } from 'rxjs/operators';
const switched = of(1, 2, 3).pipe(switchMap((x: number) => of(x, x ** 2, x ** 3)));
switched.subscribe(x => console.log(x));
// outputs
// 1
// 1
// 1
// 2
// 4
// 8
// ... and so on
在每個(gè)點(diǎn)擊事件上重新運(yùn)行可觀察到的間隔
import { fromEvent, interval } from 'rxjs';
import { switchMap } from 'rxjs/operators';
const clicks = fromEvent(document, 'click');
const result = clicks.pipe(switchMap((ev) => interval(1000)));
result.subscribe(x => console.log(x));
switchMap(project: (value: T, index: number) => O): OperatorFunction<T, ObservedValueOf<O>>
參量 | 類型 |
---|---|
項(xiàng)目 | 類型:(value: T, index: number) => O |
returnsOperatorFunction<T, ObservedValueOf<O>>
switchMap(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction<T, ObservedValueOf<O>>
參量 | 類型 |
---|---|
項(xiàng)目 | 類型:(value: T, index: number) => O |
resultSelector | 類型:undefined |
returnsOperatorFunction<T, ObservedValueOf<O>>
switchMap(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>
參量 | 類型 |
---|---|
項(xiàng)目 | 類型:(value: T, index: number) => O |
resultSelector | 類型:(outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R |
returnsOperatorFunction<T, R>
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)系方式:
更多建議: