gpt4 book ai didi

java - RxJava : How to extract object from observable?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:55:29 24 4
gpt4 key购买 nike

我觉得这是一个愚蠢的问题,但我暂时找不到任何答案,所以我要问一下,抱歉:)

因此,我需要一个执行以下操作的函数:

1) 调用另一个函数来创建一个 Observable User

2) 从 Observable User 获取 User 对象

3) 获取有关用户的一些信息并运行一些逻辑

4) 返回可观察用户

我在执行第 2 步时遇到问题。我怎么做?或者,这种方法在某种程度上是错误的吗?

这是函数的“模型”:

@Override protected Observable buildUseCaseObservable(){

Observable<User> userObservable = userRepository.findUserByUsername(username);

//User user = ??????

//if (...) {...}

return userObservable;
}

谢谢你:)

最佳答案

您可以使用运算符(map、flatMap、doOnNext 等)通过管道获取由您的可观察对象包装的对象

     Observable.just("hello world")
.map(sentence-> sentence.toUpperCase) --> do whatever you need.
.subscribe(sentence -> println(sentence)

通过设计 Observable 遵循 Observer 模式,订阅 Observable 并在通过管道发出后接收项目。

您还可以使用观察者模式,只需使用 toBlocking 从管道中提取对象。但那是一种反模式,意味着您没有应用好的设计。

          @Test
public void observableEvolveAndReturnToStringValue() {
assertTrue(Observable.just(10)
.map(String::valueOf)
.toBlocking()
.single()
.equals("10"));
}

您可以在此处查看有关阻止的更多示例 https://github.com/politrons/reactive/blob/master/src/test/java/rx/observables/utils/ObservableToBlocking.java

关于java - RxJava : How to extract object from observable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38744522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com