java - 从 rx 链返回方法中的值

标签 java rx-java

我有一个函数,传递一个字符串会返回另一个字符串。但我的问题是,使用 RxJava 我不知道如何返回 String 值。

        private void check(String value) {
            if (getGenderValue(value).equals("male")) {
               //do somehting
            }
        }

        private String getGenderValue(String value) {
              findGenderValueUseCase
                    .setType("somehting")
                    .setLanguage("language")
                    .setCountry("countryid")
                    .setValue(value)
                    .asObservable()
                    .compose(bindUntilEventDestroyView())
                    .subscribe(new NewSubscriber());
        }

最佳答案

您可以将方法更改为:

        private void check(String value) {
              findGenderValueUseCase
                    .setType("somehting")
                    .setLanguage("language")
                    .setCountry("countryid")
                    .setValue(value)
                    .asObservable()
                    .compose(bindUntilEventDestroyView())
                    .subscribe(value ->
                        if (getGenderValue(value).equals("male")) {
                         //do somehting
                        }
                    );
        }

但请记住,由于它是可观察的,因此将为每个发出的值执行“做某事”。

或者如果你想以阻塞的方式实现它:

        private void check(String value) {
          if (getGenderValue(value).equals("male")) {
           //do somehting
          }
        }

        private String getGenderValue(String value) {
              return findGenderValueUseCase
                    .setType("somehting")
                    .setLanguage("language")
                    .setCountry("countryid")
                    .setValue(value)
                    .asObservable()
                    .compose(bindUntilEventDestroyView())
                    .blockingFirst(); // here we only return the first value
        }

检查这个answer以便了解哪一个最好。

关于java - 从 rx 链返回方法中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57393227/

相关文章:

java - 使用java清除html代码和重音符号中的字符串

java - java中是否必须提到异常类型?

android - PublishSubject 和 TestScheduler 出现问题,未发出项目

java - 我不知道 Eclipse 中的数组发生了什么

java - JPA:仅使用几个属性进行获取

java - 在 jar 中找不到 KeyStore 文件,尽管存在于 jar 中

java - RxJava 单后台线程调度器

android-studio - Kotlin 和 RxJava2 zip 运算符 - 不能使用提供的参数调用以下函数

java - 为响应式(Reactive)管道编写方面

java - RxJava - AbstractOnSubscribe 在 1.1.0 中去了哪里?