待定
待定
各种 RxGroovy 实现的 Start 位于可选的 rxjava-async
模块中。
rxjava-async
模块还包含 runAsync
操作符。它很奇怪,因为它创建了一个称为 StoppableObservable
的 Observable 特化版本。
将 runAsync
传递给一个 Action
和一个 Scheduler
,它将返回一个 StoppableObservable
,该 Observable 使用指定的 Action
生成它发射的项。Action
接受一个 Observer
和一个 Subscription
。它使用 Subscription
检查 unsubscribed
条件,如果条件满足,它将停止发射项。您还可以通过调用其 unsubscribe
方法随时手动停止 StoppableObservable
(这也会取消订阅您与 StoppableObservable
关联的 Subscription
)。
由于 runAsync
立即调用 Action
并开始发射项(即,它产生一个热 Observable),因此在您使用此操作符建立 StoppableObservable
和您的 Observer
准备好接收项之间的时间间隔内,可能会丢失一些项。如果这是一个问题,您可以使用 runAsync
的变体,它也接受一个 Subject
,并将一个 ReplaySubject
传递给它,您可以使用它来检索否则会丢失的项。
在 RxGroovy 中,还有一个 From 操作符的版本,它将 Future
转换为 Observable,并因此类似于 Start 操作符。
各种 RxJava 实现的 Start 位于可选的 rxjava-async
模块中。
rxjava-async
模块还包含 runAsync
操作符。它很奇怪,因为它创建了一个称为 StoppableObservable
的 Observable 特化版本。
将 runAsync
传递给一个 Action
和一个 Scheduler
,它将返回一个 StoppableObservable
,该 Observable 使用指定的 Action
生成它发射的项。Action
接受一个 Observer
和一个 Subscription
。它使用 Subscription
检查 unsubscribed
条件,如果条件满足,它将停止发射项。您还可以通过调用其 unsubscribe
方法随时手动停止 StoppableObservable
(这也会取消订阅您与 StoppableObservable
关联的 Subscription
)。
由于 runAsync
立即调用 Action
并开始发射项(即,它产生一个热 Observable),因此在您使用此操作符建立 StoppableObservable
和您的 Observer
准备好接收项之间的时间间隔内,可能会丢失一些项。如果这是一个问题,您可以使用 runAsync
的变体,它也接受一个 Subject
,并将一个 ReplaySubject
传递给它,您可以使用它来检索否则会丢失的项。
在 RxJava 中,还有一个 From 操作符的版本,它将 Future
转换为 Observable,并因此类似于 Start 操作符。
待定
待定