走进rxjs的世界 - 万物皆流 - Everything is a stream
一些使用案例
- 轻易实现让服务器retry客户端发起的HTTP调用:
return this.http.get('/api/v1/tasks.json').retry(5).map( res => res.json());...
- 每隔10秒钟,轮询一次
pollTasks() {return Observable.interval(10000).flatMapLatest(() => http.get('/api/v1/tasks.json')).map(res => res.json())}// caller can do subscription and store it as a handle:let tasksSubscription =pollTasks().subscribe( data => this.payload = data);// turn it off at a later timetasksSubscription.unsubscribe();
the pollTasks() method emits a call every 10 seconds, which triggers the call inside of flatMapLatest – we’re basically ignoring the result of that event, and using it to trigger the http.get method to fetch our data. We’ll map it into JSON each time.
pollTasks方法返回一个Observable对象,封装了一个10秒间隔的周期性调用,调用内部会执行http操作读取tasks.json文件,将结果以json格式返回。
The caller of our pollTasks() method just gets an observable, which is emitting content every 10 seconds.
调用pollTasks方法,只会返回一个Observable对象,这个Observable对象subscribe之后,会每隔10秒产生内容。调用unsubscribe关闭。
Also the flatMapLatest call is really interesting – any calls generated by previous events are canceled, including their in-flight HTTP method calls. Try doing that with a promise!
flagMapLatest是一个强力方法,这里将其当作一种engine使用:所有基于之前发生的事件触发的调用都会自动被cancel,包括正在进行中的in-flight HTTP调用。很难想象使用promise实现类似的方法,会花费多大的工作量。
参考文献
走进rxjs的世界 - 万物皆流 - Everything is a stream相关推荐
- 【第18期】未来的计算世界里,将会是“万物皆流”?
导读:最近,笔者有幸受邀参加了由OSCHINA举办的<高手问答>活动.在第250期项目中,笔者有关实时流计算技术的一些问题与读者进行了互动.在一问一答的过程中,笔者发现大家对"流 ...
- 万物皆可NFT,UTON NFT正式上线内测
数字艺术的兴起是在最近削减艺术和文化资金的情况下出现的,这意味着艺术家们正在寻求新的方式来创作和销售他们的作品. 如今,NFT成为数字艺术品市场的"顶流","万物皆可NF ...
- 数据与广告系列十九:推荐召回与广告LookAlike,万物皆可Embedding
作者·黄崇远 『数据虫巢』 全文共1000字 题图ssyer.com " 万物皆可Embedding,开启全面数据化的时代." 正式打算写Embedding相关话题之前,有突然想到 ...
- 万物皆可JOJO:这个GAN直接让马斯克不做人啦 !Demo在线可玩!
来源:量子位 这下真的是万物皆可JOJO化了! 本来就神采飞扬的马斯克,下一刻更是仿佛要直接"我不做人啦!" 世界名画蒙娜丽莎神秘优雅的微笑,似乎也变得JO灼了起来-- 再来个同一 ...
- DeepFake 新高度:一阶运动模型让“万物皆可动”
2020-04-26 18:17 导语:万物皆可动 作者 | 蒋宝尚 编辑 | 丛 末 DeepFake一方面被骂作"AI毒瘤",另一方面在B站上大行其道.最近,这项技术又用在了在 ...
- 梅宏院士:软件定义的未来——万物皆可互联,一切均可编程 | CNCC 2017
作者:杨文 摘要:结合当下的人工智能热潮,梅宏教授认为我们正在进入一个软件定义的时代.软件定义的技术本质是把原先一体化的硬件设施打破,将基础硬件虚拟化并提供标准化的基本功能,然后通过管控软件,控制其基 ...
- 万物皆可JOJO:这个GAN直接让马斯克不做人啦 | Demo可玩
博雯 发自 凹非寺 量子位 报道 | 公众号 QbitAI 这下真的是万物皆可JOJO化了! 本来就神采飞扬的马斯克,下一刻更是仿佛要直接"我不做人啦!" 世界名画蒙娜丽莎神秘优雅 ...
- AI解救“工具人”:RPA+AI,让万物皆可自动化
郭一璞 发自 凹非寺 量子位 报道 | 公众号 QbitAI 小A,HR一枚. 作为一个典型基层HR,他每天很大一部分工作,是在处理文档手续: 办入职.离职.休假申请.五险一金,扫描各类文件,在系统里 ...
- 【密码学】一万字带您走进密码学的世界(上)
引文 密码学是研究编制密码和破译密码的技术科学.研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学:应用于破译密码以获取通信情报的,称为破译学,总称密码学. 为了使读者对密码学有一个整 ...
最新文章
- 0x12.基本数据结构 — 队列与单调队列
- Python中的函数参数类型
- R语言入门心得(3) -- 向量相关
- python 游戏 —— 汉诺塔(Hanoita)
- 图论--拓扑排序--HDU-1285确定比赛名次
- shell脚本--cut命令
- 计算机语言学考研科目,语言学考研笔记整理(共16页)
- keras 多层lstm_tensorflow-如何在keras中堆叠多个lstm?
- JPDA 架构研究5 - Agent利用环境指针访问VM (内存管理篇)
- H264 流媒体 编码汇总
- 分号是不是c语言的一部分,问什么C程序里总是提示缺少分号;,而明明有分号?...
- JavaScript条形码生成插件 - 封装篇
- java实现发送QQ邮件
- 创建多个设备文件节点_使用DEVICE_ATTR实例分析
- GDAL查看DEM高程数据(java)
- wifi定位算法 java_机器学习在滴滴网络定位中的探索和实践
- 二叉树的非递归遍历算法
- android javacv,【首发】AndroidStudio配置JavaCV环境
- Android应用开发入门教程(经典版)
- android 支付宝登录无法返回
热门文章
- VS2010 发布网站时文件丢失解决办法
- 《复杂》读书笔记(part6)--计算机中的自我复制
- 三步在MacOS Anaconda安装ligthGBM
- 实用知识点梳理:网络操作系统、HTTPS、交换机中用户权限、路由器与集线器功能、HTTP2.0特性
- 互联网大厂为什么一边裁员,一边招人。。
- 本地启动 SAP Commerce Cloud(Hybris) 产生的五个 Java 进程
- SQLITE_ERROR - table sap_capire_bookshop_books has no column named currency
- SAP Spartacus和传统的Accelerator超时机制(timeout)的区别
- 什么是前端开发中的viewport
- SAP Spartacus Header区域的渲染逻辑