Работаю над обновлением моего приложения с RxJava2 на RxJava3. Я знаю, что есть некоторые обновления того, как работает groupBy, прочитав документацию, но мне трудно понять, почему я наблюдаю такое поведение. У меня есть разделы кода, использующие groupBy, которые теперь выдают отдельные GroupedFlowables для каждого элемента, даже если ключи совпадают, вместо того, чтобы группировать выбросы по совпадающим GroupedFlowables для одного и того же ключа.
Я сузил все сводится к повторяемому тесту:
Код: Выделить всё
fun runTest() {
val eventDTOFlowable = Flowable.just(
"item1",
"item2",
"item3",
"item4",
"item5",
"item6"
)
val groupedFlowables = eventDTOFlowable.groupBy { _ -> 1 }.cache().toList().blockingGet()
output = groupedFlowables.toString()
}
В выводе точки останова (изображение ниже) вы можете видеть, что groupedFlowables оценивает список каждого потока, каждый с ключом 1, вместо группировки все потоки в одном GroupedFlowable с ключом 1. Это работало на RxJava2, и при проверке документации Rx groupBy я ожидал, что он это сделает, но его больше нет RxJava3.
Вывод точки останова groupedFlowables
Скорее всего, мое понимание изменений в groupBy в rxjava3 неверно, но любые разъяснения приветствуются.
Подробнее здесь:
https://stackoverflow.com/questions/792 ... ing-by-key