169 похожих чатов

Всем привет. Есть ли во Flow оператор, чтобы отдавать элементы

"пачками". Условно - есть 100 элементов, делаю из них флоу - подписываюсь и получаю не элементы, а листы, например, по 10 элементов, пока вся последовательность не обработается?

8 ответов

34 просмотра

А каким образом генерируете данные внутри Flow? Если вручную, то просто в билдере эмитьте списки по 10 элементов.

Andrey Akimov
Flow из базы торчит

Если речь об андроидном Room, то там, если не ошибаюсь, весь список отдается за раз. Вклиньтесь между отдающим методом и коллектором оператором transform и попробуйте написать свою логику.

Andrey-Akimov Автор вопроса
Viktor
Если речь об андроидном Room, то там, если не ошиб...

Пока таким образом и экспериментирую, в трансформ прилетают объекты из базы, добавляю их в лист, проверяю размер листа, если 10 - эмичу, проблема в том, что в последней итерации может быть меньше 10 элементов и они соответственно, отправлены не будут, а понять, что это последняя пачка элементов тоже вроде никак

Andrey Akimov
Пока таким образом и экспериментирую, в трансформ ...

А вы перед циклом посчитайте количество итераций делением на 10 и проверяйте. Хотя, скорее всего, есть вариант полаконичнее, но это надо подумать хорошо.

Andrey Akimov
Пока таким образом и экспериментирую, в трансформ ...

И не забудьте в конце всей цепочки трансформаций сменить контекст через flowOn.

Andrey Akimov
зачем?

Потому что трансформации будут совершены на диспетчере, в котором будет коллектор. Контекст автоматически меняется лишь для самого Dao-метода. Можете сами убедиться с помощью println(Thread.currentThread().name) внутри блока transform.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта