一些使用案例

  1. 轻易实现让服务器retry客户端发起的HTTP调用:
return this.http.get('/api/v1/tasks.json').retry(5).map( res => res.json());...
  1. 每隔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相关推荐

  1. 【第18期】​未来的计算世界里,将会是“万物皆流”?

    导读:最近,笔者有幸受邀参加了由OSCHINA举办的<高手问答>活动.在第250期项目中,笔者有关实时流计算技术的一些问题与读者进行了互动.在一问一答的过程中,笔者发现大家对"流 ...

  2. 万物皆可NFT,UTON NFT正式上线内测

    数字艺术的兴起是在最近削减艺术和文化资金的情况下出现的,这意味着艺术家们正在寻求新的方式来创作和销售他们的作品. 如今,NFT成为数字艺术品市场的"顶流","万物皆可NF ...

  3. 数据与广告系列十九:推荐召回与广告LookAlike,万物皆可Embedding

    作者·黄崇远 『数据虫巢』 全文共1000字 题图ssyer.com " 万物皆可Embedding,开启全面数据化的时代." 正式打算写Embedding相关话题之前,有突然想到 ...

  4. 万物皆可JOJO:这个GAN直接让马斯克不做人啦 !Demo在线可玩!

    来源:量子位 这下真的是万物皆可JOJO化了! 本来就神采飞扬的马斯克,下一刻更是仿佛要直接"我不做人啦!" 世界名画蒙娜丽莎神秘优雅的微笑,似乎也变得JO灼了起来-- 再来个同一 ...

  5. DeepFake 新高度:一阶运动模型让“万物皆可动”

    2020-04-26 18:17 导语:万物皆可动 作者 | 蒋宝尚 编辑 | 丛 末 DeepFake一方面被骂作"AI毒瘤",另一方面在B站上大行其道.最近,这项技术又用在了在 ...

  6. 梅宏院士:软件定义的未来——万物皆可互联,一切均可编程 | CNCC 2017

    作者:杨文 摘要:结合当下的人工智能热潮,梅宏教授认为我们正在进入一个软件定义的时代.软件定义的技术本质是把原先一体化的硬件设施打破,将基础硬件虚拟化并提供标准化的基本功能,然后通过管控软件,控制其基 ...

  7. 万物皆可JOJO:这个GAN直接让马斯克不做人啦 | Demo可玩

    博雯 发自 凹非寺 量子位 报道 | 公众号 QbitAI 这下真的是万物皆可JOJO化了! 本来就神采飞扬的马斯克,下一刻更是仿佛要直接"我不做人啦!" 世界名画蒙娜丽莎神秘优雅 ...

  8. AI解救“工具人”:RPA+AI,让万物皆可自动化

    郭一璞 发自 凹非寺 量子位 报道 | 公众号 QbitAI 小A,HR一枚. 作为一个典型基层HR,他每天很大一部分工作,是在处理文档手续: 办入职.离职.休假申请.五险一金,扫描各类文件,在系统里 ...

  9. 【密码学】一万字带您走进密码学的世界(上)

    引文 密码学是研究编制密码和破译密码的技术科学.研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学:应用于破译密码以获取通信情报的,称为破译学,总称密码学. 为了使读者对密码学有一个整 ...

最新文章

  1. 0x12.基本数据结构 — 队列与单调队列
  2. Python中的函数参数类型
  3. R语言入门心得(3) -- 向量相关
  4. python 游戏 —— 汉诺塔(Hanoita)
  5. 图论--拓扑排序--HDU-1285确定比赛名次
  6. shell脚本--cut命令
  7. 计算机语言学考研科目,语言学考研笔记整理(共16页)
  8. keras 多层lstm_tensorflow-如何在keras中堆叠多个lstm?
  9. JPDA 架构研究5 - Agent利用环境指针访问VM (内存管理篇)
  10. H264 流媒体 编码汇总
  11. 分号是不是c语言的一部分,问什么C程序里总是提示缺少分号;,而明明有分号?...
  12. JavaScript条形码生成插件 - 封装篇
  13. java实现发送QQ邮件
  14. 创建多个设备文件节点_使用DEVICE_ATTR实例分析
  15. GDAL查看DEM高程数据(java)
  16. wifi定位算法 java_机器学习在滴滴网络定位中的探索和实践
  17. 二叉树的非递归遍历算法
  18. android javacv,【首发】AndroidStudio配置JavaCV环境
  19. Android应用开发入门教程(经典版)
  20. android 支付宝登录无法返回

热门文章

  1. VS2010 发布网站时文件丢失解决办法
  2. 《复杂》读书笔记(part6)--计算机中的自我复制
  3. 三步在MacOS Anaconda安装ligthGBM
  4. 实用知识点梳理:网络操作系统、HTTPS、交换机中用户权限、路由器与集线器功能、HTTP2.0特性
  5. 互联网大厂为什么一边裁员,一边招人。。
  6. 本地启动 SAP Commerce Cloud(Hybris) 产生的五个 Java 进程
  7. SQLITE_ERROR - table sap_capire_bookshop_books has no column named currency
  8. SAP Spartacus和传统的Accelerator超时机制(timeout)的区别
  9. 什么是前端开发中的viewport
  10. SAP Spartacus Header区域的渲染逻辑