我在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)
)
答案 0 :(得分:1)
只需在switchMap中命名该参数,然后通过将其组合为您想返回的任何可观察变量来保留它即可:
switchMap { v -> someSource.map { w -> Pair(v, w) } }