V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
likaci
V2EX  ›  问与答

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

  •  
  •   likaci · Aug 26, 2015 · 2498 views
    This topic created in 3900 days ago, the information mentioned may be changed or developed.


    谢谢
    10 replies    2015-08-27 11:16:17 +08:00
    ozking
        1
    ozking  
       Aug 26, 2015   ❤️ 1
    你这不就是连起来写么,
    likaci
        2
    likaci  
    OP
       Aug 26, 2015
    @xudshen 主要是想像串糖葫芦一样,一块就连起来
    不想写在回调里嵌套
    ozking
        3
    ozking  
       Aug 26, 2015   ❤️ 1
    @likaci RxJava 就是这样子的惹

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

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

    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 (...)
    ozking
        6
    ozking  
       Aug 26, 2015
    缩进都没了,大致的意思可以看
    StackGao
        7
    StackGao  
       Aug 27, 2015
    @xudshen
    @likaci

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



    折腾一天了, offline gradle 不行, 挂 vpn 也是无限 build..
    ozking
        8
    ozking  
       Aug 27, 2015
    @StackGao https://github.com/ReactiveX/RxJava

    一般使用用 Binary 就可以了吧
    StackGao
        9
    StackGao  
       Aug 27, 2015
    @xudshen 感谢回复!

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

    没有办法的话我也直接用 Binary 吧.. 谢谢了 : )
    ozking
        10
    ozking  
       Aug 27, 2015
    @StackGao 话说你们都用 java8 了么,我最近也想迁过去惹
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1298 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 17:09 · PVG 01:09 · LAX 10:09 · JFK 13:09
    ♥ Do have faith in what you're doing.