RxJava-在switchMap订阅中获取原始输入参数

时间:2018-07-02 03:55:43

标签: rx-java rx-java2 rx-android

我在Android上的可编辑文本字段中使用Rx。我想在订阅方法中检索原始用户输入。

到目前为止,我一直在使用flatmap with a resultSelector parameter来保留用户输入。我想使用switchMap避免处理较早结果的结果。如何将这段代码迁移到switchMap:

    editText.textChanges().map { it.toString().trim() }.flatMap(
            {
                Observable.just("Data: $it")
            },
            { input: String, output: String ->
                Pair(input, output)
            }
    ).subscribe(
            process(it.first, it.second)
    )

1 个答案:

答案 0 :(得分:1)

只需在switchMap中命名该参数,然后通过将其组合为您想返回的任何可观察变量来保留它即可:

switchMap { v -> someSource.map { w -> Pair(v, w) } }