我有一个函数,传递一个字符串会返回另一个字符串。但我的问题是,使用 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/