首页 > 其他分享 >rxjs学习

rxjs学习

时间:2023-03-17 10:14:48浏览次数:40  
标签:Observable 订阅 对象 观察者 学习 到货 rxjs 老板

基本概念
Observable (可观察对象):

表示一个概念,这个概念是一个可调用的未来值或事件的集合。相当于Promise对象,内部可以用于执行异步代码,通过调用内部提供的方法将异步代码执行的结果传递到可观察对象外部。

Observer (观察者):

一个回调函数的集合,它知道如何去监听由 Observable 提供的值。类比then, 方法中的回调函数,用于接收可观察对象中传递出来的数据

Subscription (订阅):

表示 Observable 的执行,主要用于取消 Observable 的执行。类比then方法.

Operators (操作符):

采用函数式编程风格的纯函数 (pure function),使用像 map、filter、concat、flatMap 等这样的操作符来处理集合。

Subject (主体):

相当于 EventEmitter,并且是将值或事件多路推送给多个 Observer 的唯一方式。

Schedulers (调度器):

用来控制并发并且是中央集权的调度员,允许我们在发生计算时进行协调,例如 setTimeout 或 requestAnimationFrame 或其他。

讲解一下观察者模式,怕有的人不了解或遗忘了。
观察者模式(observer),又叫发布-订阅模式(publish/subscribe)。这里说下,发布-订阅模式其实有的说他是一种消息范式。并不是一种设计模式。在维基百科中也是有说明的,不过在后来的vue和react中都有使用,可能大家也就默认了吧。但是影响不大。个人举个例子说明一下:
你去超市买烟,但是呢,烟没货了,你就跟老板说:“老板,等烟到货了,记得通知我”。然后烟到货后,老板通知你,你就来买了。在代码中,也是这样,你不知道某个事件何时触发,只能在其触发时去执行相应的逻辑。所以这里面,老板那里是个observable,可观察的对象,而你呢,就是一个observer,观察者。你们这件这种通知的关系,就是一种订阅的关系。

//定义烟店的老板
const smoke_boss = new Observable(todo => {
  //等烟到货了,通知买家
  setTimeout(() => {
      todo.next("烟到货了")
  }, 1000);

})
//定义买家1
const buy_one = {
  next: function (data:any) {
    console.log(data)
  }
}
//建立关系。也就是订阅
smoke_boss.subscribe(buy_one)

标签:Observable,订阅,对象,观察者,学习,到货,rxjs,老板
From: https://www.cnblogs.com/friendwang1001/p/17225587.html

相关文章

  • vue3 js 学习笔记
    Vue3-js学习笔记目录Vue3-js学习笔记目录前言reactive数据绑定事件绑定生命函数周期计算属性-computedpropsemit-自定义事件ref-获取元素及子组件watchvu......
  • Unity 学习使用InputSystem接收键盘的输入
    目录快速实践配置InputAction创建场景编写代码理论学习ActionInputActionTypeInputBinding快速实践配置InputAction右键点击工程(project)面板空白处,弹出菜单栏,选择Cr......
  • MyBatis学习日志五
    缓存一级缓存默认开启,同一个SqlSesion级别共享的缓存,在一个SqlSession的生命周期内,执行2次相同的SQL查询,则第二次SQL查询会直接取缓存的数据,而不走数据库,当然,若第一次和第......
  • 3.16学习总结
    2.3.3Button(按钮)与ImageButton(图像按钮)分类 Android基础入门教程本节引言:今天给大家介绍的Android基本控件中的两个按钮控件,Button普通按钮和ImageButton图像按钮......
  • AS学习日记23.3.16
    今天学习了侧滑界面制作的布局文件写法和java文件的写法,准备之后学跳转实现学习了view和viewgroup了解了安卓中的六大布局:LinearLayout(线性布局),RelativeLayout(相对布......
  • arduino学习(1)
    买的Arduino板子终于到了,终于可以动手做实验了...  上图中有面包板,面包线,面包板电源,Arduino电路板,平多多买的,官网买会比较贵。  买的一块esp232板子......
  • TinyML 科研课堂学习笔记
    嵌入式微型机器学习与系统应用week1任务每周/隔周汇报进展(PPT)final:确定研究方向与主体开展研究工作参考arduinotinymlCS249r工作周期研究方向研究问题研......
  • 动手学深度学习v2——第六章predict_ch6
    在QA环节,有位同学问了第六章的predict函数在哪,书中没有给出,使用predict_ch3稍作更改可得。defpredict_ch6(net,test_iter,device,n=6):#@save"""预测标签(定义......
  • 点分治 学习笔记
    新知识+1。0x00前言点分治适合处理大规模的树上路径信息问题。0x01引入我们通过洛谷的模板题来引入点分治的概念:P3806【模板】点分治1:给定一棵有n个点的带边......
  • 概率论与数理统计及其应用学习笔记1(numpy+matplotlib)
    先把基本概念都理一遍,博客的后半部分会上具体函数实现,没有前半部分的基础,后半部分看起来会有点吃力样本空间:某个实验的所有可能结果组成的集合样本点:样本空间的每个结......