rxjs的一个例子:什么是rxjs的OperatorFunction?
在StackBlitz里创建一个rxjs项目,源代码如下:
import { Observable, of } from "rxjs";
import { map } from "rxjs/operators";
import { interval } from "rxjs";
import { switchMap } from "rxjs/operators";const pollTasks = () => {return interval(1000).pipe(switchMap(counter => {return of(counter + 100);}),map(res => res + res));
};// caller can do subscription and store it as a handle:
let tasksSubscription = pollTasks().subscribe(data =>console.log("timestamp: " + new Date() + ": " + data)
);
// turn it off at a later timesetTimeout(() => tasksSubscription.unsubscribe(), 10000);
十秒之后自动关闭:
首先用rxjs interval创建一个Observable对象,每隔1秒钟产生一个递增的整数:
interval(1000)返回的Observable调用pipe进行下一步处理:switchMap.
注意该switchMap的类型,接受一个输入参数,project函数。该project函数的输入是:value: number, index: number, 必须返回Observable. 整个project的函数类型是OperatorFunction<number, number>.
下面这个例子更加能够说明问题:
import { Observable, of, OperatorFunction } from "rxjs";
import { map } from "rxjs/operators";
import { interval } from "rxjs";
import { switchMap } from "rxjs/operators";const add1Fn = value => value + 1;
const add1OP: OperatorFunction<number, number> = map(add1Fn);const pollTasks = () => {return interval(1000).pipe(switchMap(counter => {return of(counter + 100);}),map(res => res + res),add1OP);
};// caller can do subscription and store it as a handle:
let tasksSubscription = pollTasks().subscribe(data =>console.log("timestamp: " + new Date() + ": " + data)
);
// turn it off at a later timesetTimeout(() => tasksSubscription.unsubscribe(), 3000);
将函数传入rxjs的operator,返回的是一个operatorFunction,将这个operatorFunction传入pipe,返回的是新的Observable.
更多Jerry的原创文章,尽在:“汪子熙”:
rxjs的一个例子:什么是rxjs的OperatorFunction?相关推荐
- 通过rxjs的一个例子, 来学习SwitchMap的使用方法
switchMap相关文章 rxjs里switchMap operators的用法 通过rxjs的一个例子, 来学习SwitchMap的使用方法 rxjs switchMap的实现原理 rxjs的ma ...
- [asp.net core]SignalR一个例子
摘要 在一个后台管理的页面想实时监控一些操作的数据,想到用signalR. 一个例子 asp.net core+signalR 使用Nuget安装包:Microsoft.AspNetCore.Sign ...
- R语言使用lm构建线性回归模型、并将目标变量对数化(log10)实战:可视化模型预测输出与实际值对比图、可视化模型的残差、模型预测中系统误差的一个例子 、自定义函数计算R方指标和均方根误差RMSE
R语言使用lm构建线性回归模型.并将目标变量对数化(log10)实战:可视化模型预测输出与实际值对比图.可视化模型的残差.模型预测中系统误差的一个例子 .自定义函数计算R方指标和均方根误差RMSE 目 ...
- python中self_一个例子带你入门Python装饰器
============ 欢迎关注我的公众号:早起python ============ 前言 在还未正式发布的python3.9中,有一个新功能值得关注,那就是任意表达式可以作为装饰器,如果你还不知 ...
- ftp服务器文件备份,数据备份是十分重要的,下面是通过ftp将本机数据备份到远程服务器的一个例子...
数据备份是十分重要的,下面是通过ftp将本机数据备份到远程服务器的一个例子 以备份oracle数据为例 本机IP:192.168.0.1 远程IP:192.168.0.111 备份脚本 ora_bak ...
- Bootice1.34版本把grub4dos0.46a写入硬盘MBR失败一个例子
Bootice1.34版本把grub4dos0.46a写入硬盘MBR失败一个例子 一个同事的台式机,BIOS启动,500GB硬盘,分了四个MBR分区,C盘是激活的主分区,第二个分区50 ...
- 用一个例子告诉你gdb调试工具如何使用
用GDB调试程序 GDB概述 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.或许,各位比较喜欢那种图形界面方式 ...
- C++中const——由一个例子想到的
前天同学实现了<C++ Primer>中关于虚函数的一个例子,拿过来问我,代码如下: #include<iostream> #include<string> usi ...
- UA PHYS515A 电磁理论II 静电学问题的一个例子
UA PHYS515A 电磁理论II 静电学问题的一个例子 例 假设有一个中空球形导体,中空部分也是一个球形,半径为aaa,球心与导体相同,导体半径为bbb:球心处有一个+q+q+q的点电荷,距离圆心 ...
最新文章
- SAP HUM 使用HU02去Unpack一个HU
- IDEA---Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found
- cgo的几种使用方式
- python吃内存还是cpu_Python2 得到 CPU 和内存信息要怎么实现呢?
- 格式说明_现代诗歌的写作格式是什么,能否举例说明?
- Android RecyclerView 使用完全解析 体验艺术般的控件
- 配置ISCSI客户端(LINUX)
- vue - (引入jq)
- python dataframe排序_python – Pandas DataFrame排序忽略了这种情况
- python Image 安装
- opencv 4计算机视觉项目实战_资源|计算机视觉实战操作(PDF下载)
- 计算机组成原理—地址码
- Tomcat8.0之后GET请求不需要再设置中文乱码问题
- ai人工智能的数据服务_数据科学和人工智能如何改变超市购物
- vim如何删除^M字符
- 阿里云播放器Aliplayer-WEB走坑中
- 最新PyCharm2018破解教程
- 华为服务器系统图标,监控服务器图标
- 银行卡所属银行的查询接口--阿里提供
- 智能合约升级原理01---起源
热门文章
- JavaScript怎么上传图片
- 《苹果往事:开发麦金托什的非凡岁月》撷英
- 分布式与人工智能课程(part14)--深度学习
- Django(part28)--F对象
- SAP Spartacus Session affinity
- windows 10 使用 VMWare workstation player 启动 windows XP 虚拟机出错的问题
- 检测 SAP Spartacus 服务器端渲染页面响应时间的两种办法
- SAP Spartacus B2B user列表对应的Angular Component
- sap.ui.layout.HorizontalLayout is not a constructor
- Angular ng-template元素的学习笔记