ReactiveX 中怎样把一个 Observable 的结果作为另一个 Observable 的输入?

2015-08-26 16:14:00 +08:00
 likaci


谢谢
2164 次点击
所在节点    问与答
10 条回复
xudshen
2015-08-26 16:29:56 +08:00
你这不就是连起来写么,
likaci
2015-08-26 17:13:47 +08:00
@xudshen 主要是想像串糖葫芦一样,一块就连起来
不想写在回调里嵌套
xudshen
2015-08-26 17:20:48 +08:00
@likaci RxJava 就是这样子的惹

实在不想这样可以封装一下用 BlockingObservable ,然而我觉得现在这种方式反而逻辑更清楚些

(题外:用 Java 8 lambda 代码看上去就会简洁好多了惹)
likaci
2015-08-26 17:39:31 +08:00
@xudshen 多谢指点,我想要的效果是:
Observable1 (监视输入).filter (无效输入).XXX (搜索词).Observable2 (搜索).subscribe (更新 UI )
把文档里的操作符看了一遍, 似乎没有合适的 XXX 方法
xudshen
2015-08-26 17:56:44 +08:00
我明白了,试试这样

WidgetObservable.text (...)
.debounce (...)
.observeOn (...)
.filter (...)
.map (new Func1<String, Suggestion>() {
@Override
public Suggestion call (String s ) {
return BlockingObservable.from (Search.getInstance ().getSearchSuggestion (s )).first ();
}
})
.subscribe (...)
xudshen
2015-08-26 17:57:11 +08:00
缩进都没了,大致的意思可以看
StackGao
2015-08-27 10:37:40 +08:00
@xudshen
@likaci

请问 rxjava 应该用什么姿势导入 idea/android studio ?



折腾一天了, offline gradle 不行, 挂 vpn 也是无限 build..
xudshen
2015-08-27 10:41:23 +08:00
@StackGao https://github.com/ReactiveX/RxJava

一般使用用 Binary 就可以了吧
StackGao
2015-08-27 10:54:58 +08:00
@xudshen 感谢回复!

我就是 clone https://github.com/ReactiveX/RxJava 这个到 ide 里想看看源码但是一直 build 不成功.

没有办法的话我也直接用 Binary 吧.. 谢谢了 : )
xudshen
2015-08-27 11:16:17 +08:00
@StackGao 话说你们都用 java8 了么,我最近也想迁过去惹

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/216149

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX