RxSwift 热&冷Observables

reactivex.io

热&冷 Observables

建议更多地把它看作是序列的属性而不是单独的类型,因为它们是由相同的抽象来表示的,它们是完全符合Observable序列.

这是ReactiveX.io的一个定义

一个Observable什么时候开始发射它的序列?这取决于这个Observable。一个“热”的Observable可以在它被创建的时候就开始发射,所以任何后来订阅这个Observable的观察者都可以开始在中间的某个地方观察这个序列。另一方面,一个“冷”的Observable,在它开始发出元素之前,等待观察者订阅它,这样观察者就能保证从一开始就看到整个序列.

热 Observables 冷 observables
… 是序列 … 是序列
使用资源(“生产热”)无论是否有任何观察者订阅. 在观察者订阅之前不要使用资源(不要产生热).
变量/属性/常量,点击坐标,鼠标坐标,UI控制值,当前时间 异步操作、HTTP连接、TCP连接、流
通常包含 ~ N 个元素 通常包含~ 1个元素
不管是否有观察者订阅,序列元素都是被生成的. 只有当有订阅的观察者才会产生序列元素.
序列计算资源通常在所有已订阅的观察者之间共享. 序列计算资源通常分配给每个订阅的观察者.
通常有状态 通常无状态

Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2021 朝着牛逼的道路一路狂奔 All Rights Reserved.

访客数 : | 访问量 :