我正在关注那两个似乎做同样工作的运营商:
http://reactivex.io/documentation/operators/start.html http://reactivex.io/documentation/operators/create.html
是否只创建较新版本的start?因为我也无法在较新版本的RxJava中找到启动方法。
答案 0 :(得分:1)
这是两个不同的运算符,它们也有不同的工件。
此问题已标记为 rx-java ,因此我只讨论此语言实现。其他语言可能有不同的约定,包装,命名等。
Observable.create
确实是提供创建可观察对象的方法。
您会注意到,传递的类型为OnSubscribe
,在订阅时称为。所以除非你传递的类型是活动的(一个发送内容的线程,或者代码被插入某些活动源,如网络),在订阅者之前不会做任何实际的工作。
在est 中,根据创建observable的方式,它可能会或可能不会生成相同的项目,它可能会以不确定的速度生成一个,多个或没有项目。
神器来源⇨https://github.com/ReactiveX/RxJava
Async.start
也创建了一个observable,但是有明显的差异,无论是否订阅都会立即调用Function
,并生成一个项目。如果发生多个订阅,也将重新使用生成的项目。最后,该函数将在计算调度程序上执行。