基本概念
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