# RxJs的基本概念.
英文 | 中文 | 语义化 |
---|---|---|
Observable | 可观察对象 | 承载rxjs操作符的类 |
subscribe | 订阅(动作) | 订阅有两种属性: 1. 是初始化的时候定义这个订阅中有什么样的操作, 会返回什么样的值 2. 执行时作为方法, 将观察者作为参数传进去, 让观察者看到有什么值, 相当于Promise中的resolve, reject(定义传入值)和then(观察传入值). |
Observer | 观察者 | 值变化时, 我们应该作何处理 |
Subscription | 订阅处理 | 可以调用unsubscribe来取消订阅 |
Subscriber | 订阅者 | 订阅者由观察者的参数实例化, 并且继承了订阅处理, 可以理解为既是观察者又是订阅处理 |

import { Observable } from 'rxjs';
(() => {
const _instance = new Observable(subscriber => {
subscriber.next(1);
subscriber.complete();
});
_instance.subscribe(() => {
next: (val) => console.log(`hello ${val}`),
complete: () => console.log('i have been already finished~')
});
})();
# Promise与Observable的区别?
- Promise的意思为承诺, 也就是不管成功与否, 不管你看不看, 我都要做, 自然也就无法取消.
- Observable的意思是可观察对象, 可以理解为只有进行了观察, 才会触发变更, 如果不观察就不会发生变化.
# 订阅与观察是什么区别?
- 宏观上两个词可以互用.
- 比如Observable也可以改成可订阅对象, 不进行订阅就没法产生值, 都是一样的.
- Subscriber基本可以替代Observer(也就是说, 当我说订阅者的时候, 其实就是观察者).
- 订阅者 = 观察者 + 订阅处理
← angular lib rxjs操作符 →