RxJava - Получить оригинальный входной параметр в подписке на SwitchMap. - PullRequest
0 голосов
/ 02 июля 2018

Я использую Rx на Android в редактируемом текстовом поле. Я хочу получить исходный пользовательский ввод в методе подписки.

Я использовал flatmap с параметром resultSelector , чтобы сохранить пользовательский ввод. Я хочу использовать 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 голосов
/ 02 июля 2018

Просто назовите аргумент в switchMap, а затем сохраните его, скомпоновав его с любой наблюдаемой, которую вы хотите вернуть:

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