rx-java - Observable.OnSubscribe 接口的方法调用及其完整说明
问题描述
我探索了在 RxJava 中创建新 Observabe 的不同方法。
不幸的是,我试图找到方法的完整描述
call() ( interface Observable.OnSubscribe<T>
) 失败。
请任何人都可以帮助我找出该方法的作用或分享有关此方法的一些详细信息。
非常感谢!
解决方案
RxJava 提供了几个工厂方法,可以通过 Observable 类访问:
让我们看看一个急切的实现: Observable.just() 你也可以使用: Observable.fromCallable(() -> { return }) 或 Observable.defer(() -> { return > } 来推迟一个昂贵的计算(惰性)。还有 Observable.fromArray / Observable.fromIterable,它会在订阅时急切地获取对象列表并发出它们。还有一个 Java-Futures 的互操作:Observable.fromFuture。还有 Observable .create,可用于发出专用的合约事件,如 onNext/onComplete/onError。此外,您可以使用 Observable.create 将回调样式的 Api 转换为 RxJava-Observables。
上面提到的接口 Action1 是一个类似于 Java8 的 Consumer 的功能接口。它不是用于创建 Observable 的工具,而是用于将自定义代码注入到 Observable 中。
让我们看一下这个例子:
Observable<String> obs$ = Observable.fromCallable(() -> "Test");
obs$.subscribe(s -> System.out.println(s));
在这个例子中,你“可以”传入一个 Action1 来订阅,以便在发出一个值时被调用。与 RxJava2 一样,不再有 Action1。相反,人们会使用消费者。
推荐阅读
- c# - C# 封送 C++ 函数
- python - 如何从python中的网格中找到节点的索引?
- scala - Scala akka http客户端没有超时
- elasticsearch - 如何为新字段禁用 _source?
- python - For 循环卡在第一次迭代中,其他循环不能正确返回
- javascript - 使用 cookie 控制弹出模式
- java - 在 Play 应用程序路由中实现正则表达式
- powershell - 如何传递参数以修改 Tableau 中的过滤器以下载 PDF
- database - postgres:为什么这个 GIN 索引适用于 'text%' 而不是 '%text%'?
- java - javax.naming.CommunicationException:连接重置 [根异常是 java.net.SocketException:连接重置]