rxjs里switchMap operators的用法
时间:2022-07-28
本文章向大家介绍rxjs里switchMap operators的用法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Projects each source value to an Observable which is merged in the output Observable, emitting values only from the most recently projected Observable.
例子:
const switched = of(1, 2, 3).pipe(switchMap((x: number) => of(x, x ** 2, x ** 3)));
switched.subscribe(x => console.log(x));
输出:
/*const switched = of(1, 2, 3).pipe(switchMap((x: number) => of(x, x ** 2, x ** 3)));
switched.subscribe(x => console.log(x));*/
const origin = of(1, 2, 3);
// fn是一个函数,接受一个number输入,返回一个Observable对象,包含3个number元素
const fn = (x: number) => of(x, x ** 2, x ** 3);
// OperatorFunction:尖括号里前一个number是输入类型
// 第二个括号是输出类型
const mapper: OperatorFunction<number, number> = switchMap(fn);
// pipe需要接受的类型是OperatorFunction,经过operator传入一个
// funcion进去组合而成
const switched = origin.pipe(mapper);
switched.subscribe(x => console.log('diablo: ' + x));
switchMapTo
const origin = of(111, 222, 333);
const copy = origin.pipe(map( (x) => x + 1));
// observable: ObservableInput<R>
const int = interval(1000).pipe(take(3));
const fn = (x: number) => of(x, x ** 2, x ** 3);
// 需要传一个Observable进去
const mapper = switchMapTo(int);
const switched = origin.pipe(mapper);
switched.subscribe(x => console.log('diablo2: ' + x));
测试结果:origin里的value完全没有被考虑:
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- LeetCode 1546. Maximum Number of Non-Overlapping Subarrays With Sum Equals Target(动态规划)
- HTML加载顺序
- 基于飞桨PaddleClas实现轧钢带表面缺陷分类,top1准确率可达100%
- 01Python的基本的数据结构之List
- 02Python数据结构之再谈List的常用操作
- 03Python List不得不知的操作之改、查
- 04Python基础之字符串Str
- 05Python元组tuple的个性
- Tkinter Canvas
- Python实现最小二乘法
- 一个简单的例子学明白用Python插值
- python 类class基础简明笔记
- 数据离散化及其KMeans算法实现的理解
- [tensorflow损失函数系列]sparse_softmax_cross_entropy_with_logits
- 怎样将Anaconda设置为国内的镜像