RxJS核心操作符及常用操作符详解
1. RxJS的延迟求值与订阅
1.1 延迟求值策略
在RxJS中,表达式的整个求值过程会等待,直到需要该表达式的结果时才会进行。具体来说,就是等待订阅者订阅可观察表达式,然后才开始初始化所需的数据结构。这种延迟求值策略使得RxJS能够对内部数据结构进行优化和复用。
1.2 延迟分配与订阅可观察对象
RxJS通过两种方式避免过早分配数据:
- 延迟订阅机制 :可观察对象在被感兴趣的事件激活之前会处于休眠状态。例如,以下代码创建了一个每隔半秒生成一个事件的可观察对象:
const source$ = Rx.Observable.create(observer => {
let i = 0;
setInterval(() => {
observer.next(i++);
}, 500);
});
要激活 source$ ,观察者必须通过 subscribe() 方法进行订阅。调用 subscribe 会使可观察对象脱离休眠状态,开始生成值。
- 即时推送数据 :可观察对象在事件发出后会立即推送数据,而不是将其静态地保存在内存中。默认情况下,数据一旦被接收就会向下游发送。
延迟订阅的第二个优点是,可观察对象默认不会保留数据。在上述示例中,每个由定时器生成的事件
超级会员免费看
订阅专栏 解锁全文
1186

被折叠的 条评论
为什么被折叠?



