RxJava:如何从observable中提取对象?
发布时间:2020-12-15 02:59:28 所属栏目:Java 来源:网络整理
导读:我觉得这是一个愚蠢的问题,但我暂时找不到任何答案,所以我会问它,对不起:) 所以,我需要一个执行以下功能的函数: 1)调用另一个函数来创建一个Observable User 2)从Observable User获取User对象 3)获取有关用户的一些信息并运行一些逻辑 4)返回可观察用户 我
我觉得这是一个愚蠢的问题,但我暂时找不到任何答案,所以我会问它,对不起:)
所以,我需要一个执行以下功能的函数: 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; } 谢谢 :) 解决方法
你无法从一个可观察者中“提取”某些东西.当您订阅它们时,您可以从observable获取项目(如果它们发出任何项目).由于您要返回的对象是Observable类型,因此您可以应用运算符将??数据转换为链接. RxJava中最常见且易于使用的运算符是“map”,它通过应用函数将一种形式的数据更改为其他形式.
在您的情况下,您可以直接在Observable< user>上使用’map’运算符: return userRepository.findUserByUsername(username) .map(new Func1<User,Object>() { @Override public Object call(User u) { // .. // apply your logic here // .. return myDataObject; // return you data here to subcribers } }); 我希望你了解RxJava的基础知识,不需要任何关于如何使用运算符的介绍.对于地图文档,请遵循此link (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |