Я очень новичок в проектной реакторной библиотеке и реактивном программировании с Kotlin, и пытаюсь реализовать такие функции, как flatmap
, flatMapIterable
, subscribe
и т. Д.
Теперь проблема в том, что я пытаюсь использовать o / p одной функции в другую, используя flatMapIterable
, и после использования я пытаюсь подписать это, передавая выходные данные функции fist и второй функции другой функции нового класса.
Теперь, когда я пытаюсь использовать o / p функции 1, я не могу увидеть значение, я вижу только Mono<>
или Flux<>
.
Ниже приведен фрагмент кода для более подробного объяснения
var result = employerService.getEmployee("Active") // return value is Mono<GetEmployeeStatusListResult>
result.flatMapIterable(GetEmployeeStatusListResult::emps)
.flatMap {
employerService.getUsersById(it.userId) // it is of type GetEmployeeStatusListResult.emps and value returned from employerService.getUsersById(it.userId) is of type GetUserResult class created
}.subscribe {
aService.createContact(result, it)
}
Теперь в строке 4 я получаю ожидаемое userId
из it.userId
, но когда я проверяю результат в строке 6, то я не получаю ожидаемый список значений, он просто предоставляет мне MonomapFuesable
, с отображением и источник.
Может ли кто-нибудь помочь мне понять, что мне делать, так как вся моя задача - передать вычисленное значение из строки 1 и строки 4 в функцию строки 6.
Пожалуйста, задайте больше вопросов, если я не предоставил необходимую информацию, я новичок в этом.
Заранее спасибо !!
[ОБНОВЛЕНИЕ]: я решил проблему следующим образом:
`` `
employerService.getEmployee("Active") // return value is Mono<GetEmployeeStatusListResult>
.flatMapIterable(GetEmployeeStatusListResult::emps)
.flatMap {
employerService.getUsersById(it.userId).map{x->Pair(it,x)} // it is of type GetEmployeeStatusListResult.emps and value returned from employerService.getUsersById(it.userId) is of type GetUserResult class created
}.subscribe {
aService.createContact(it.first, it.second)
}
`` `