有人可以解释一下 defer
和 create
中的方法 Observable
之间的区别吗?我不明白什么时候应该使用 defer
什么时候应该使用 create
..
参考:
推迟: http ://reactivex.io/documentation/operators/defer.html
创建: http ://reactivex.io/documentation/operators/create.html
谢谢
原文由 Xitrum 发布,翻译遵循 CC BY-SA 4.0 许可协议
所以区别似乎是:
defer
当你已经创建/返回一个可观察的东西时很好,但你不希望这个过程在订阅之前发生。create
当您需要手动包装一个异步进程并创建一个可观察对象时非常有用。该创建 也被 推迟到订阅。换一种方式:
defer
是一个运算符,可以延迟组合可观察序列。create
是可观察序列的自定义实现(创建被推迟到订阅)。因此,如果您遇到可能使用
just
Observable
的情况,或者您有一个返回Observable
的网络 API 层请求,但您不希望该请求在订阅之前启动。defer
适用于这些场景。如果您的网络 API 层 不 为请求返回
Observable
,但您需要一个Observable
接口,您可以使用create
那个Observable
序列在订阅之前仍然不会被创建。如果您希望无论订阅如何启动网络调用,那么您将使用不同的机制,例如Subject
,可能会重播。