rx-java - 创建一个可以接受参数的 Observable

标签 rx-java

如果有的话,创建 Observable 的正确方法是什么? s 能够接受参数?

例如,我可以参数化 http 请求

最佳答案

您可以使用 Observable.create为了那个原因:

public static Observable<String> createMyObservable(final String all, final Integer my, final Boolean parameters) {
    return new Observable.create(new Observable.OnSubscribe<String>(){

        @Override
        public void call(Subscriber<? super String> subscriber) {
            // here you have access to all the parameters you passed in and can use them to control the emission of items:

            subscriber.onNext(all);
            if (parameters) {
                subscriber.onError(...);
            } else {
                subscriber.onNext(my.toString());
                subscriber.onCompleted();
            }
        }
    });
}

请注意,所有参数都必须声明为 final,否则代码将无法编译。

如果您希望您的输入参数随时间变化,它们本身可能是一个 Observable,您可以使用 combineLatestzip将它们的值与您的其他观察值结合起来,或者可能 mapflatMap根据您输入的 Observables 的值创建新的 Observables。

关于rx-java - 创建一个可以接受参数的 Observable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28407277/

相关文章:

java - RXJava Android - 尝试拉 RSS 提要时出现网络异常

android - RxAndroid : Manage events of interdependent objects

java - 如何处理由 Observable 发出的项目并访问另一个 Observable 的值?

android - 使用 RxAndroidBle (rxJava) 将命令列表发送到设备

rx-java - 使用响应式(Reactive)编程将 couchbase 文档从一个存储桶复制到另一个存储桶时出现 OOM 问题

android - 如何使用 Rx 管理多个观察者,以便仅保持一个与服务的打开连接?

java - 检查 RxJava 中是否有订阅者抛出异常

android - RxJava 中 AndroidSchedulers.mainThread() 的替代方案是什么?

java - Rxandroid SubscribeOn 和 ObserveOn 有什么区别

android - Robolectric + OkHttp + 改造 + rxJava 单元测试