java - 来自 rx 链的方法中的返回值
问题描述
我有一个函数传递一个字符串返回另一个。但我的问题是使用 RxJava 我不知道如何返回字符串值。
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
}
检查此答案以了解哪个最好。
推荐阅读
- javascript - 带有保存按钮的可编辑 HTML 表单
- swift - 包含视图的动态结构数组
- angular - 不同组件中的角度路线导航
- json - 创建单个对象时,对象会两次存储到 django 数据库中。如何解决这种意外行为?
- kotlin - 使用 Kotlin 时如何修复 IDEA 中接口使用错误中的`@JvmStatic`?
- firebase - Firebase - Analytics:用户参与度图表未显示 screen_view 事件
- java - Java Mission Control 未检测到 JVM Windows 10
- sql - 如何避免在 ClickHouse 的另一个聚合函数中使用聚合函数
- vue.js - 在动态表中搜索输入
- javascript - 停止悬停时 CSS 中的过渡