codecamp

RxJS switchMapTo

将每个源值投影到相同的 Observable,并将其switchMap在输出 Observable 中进行多次展平。

switchMapTo<T, I, R>(innerObservable: any, resultSelector?: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, I | R>

参量

内部可观察 一个 Observable 替换源 Observable 中的每个值。
resultSelector 可选的。默认值为undefined。类型:(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R

returns

OperatorFunction<T, I | R>:一个 Observable,它每次在源 Observable 上发射值时,都从给定的项目中发出项目 innerObservable(并可选地通过不推荐使用进行转换resultSelector),并且仅从最近投影的内部 Observable 中获取值。

描述

就像switchMap,但是始终将每个值映射到相同的内部Observable。

switchMapTo大理石图

将每个源值映射到给定的 Observable,innerObservable而不管其源值如何,然后将这些结果 Observable 展平为单个 Observable,这就是输出 Observable。输出 Observables 仅从中最近发出的实例中发出值 innerObservable

在每个点击事件上重新运行可观察到的间隔

import { fromEvent, interval } from 'rxjs';
import { switchMapTo } from 'rxjs/operators';


const clicks = fromEvent(document, 'click');
const result = clicks.pipe(switchMapTo(interval(1000)));
result.subscribe(x => console.log(x));

超载

switchMapTo(observable: any): OperatorFunction<any, R>

参量 类型
可观察的 类型:any

returnsOperatorFunction<any, R> switchMapTo(observable: any, resultSelector: undefined): OperatorFunction<T, R>

参量 类型
可观察的 类型:any
resultSelector 类型:undefined

returnsOperatorFunction<T, R>

switchMapTo(observable: any, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>

参量 类型
可观察的 类型:any
resultSelector 类型:(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R

returnsOperatorFunction<T, R>

也可以看看

RxJS switchMap
RxJS take
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

RxJS operators

RxJS fetch

RxJS testing

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }