в общем ПОКА понял только то, что в любой ситуации forEach срабатывает 1 раз, сколько бы не было элементов в списке
Если кому интересно задача решилась переходом на onEach оператор к флоу, потому как он делает действие(вызов в моем колла в базу и коллекта) перед эмитом в уже текущий поток. Грубо говоря как я понял, в collect я уже получал первое значение и второй коллект уже не мог физически вызваться(потому что .collect терминальная операция), а onEach выполняет все действия с флоу перед коллектом и тогда можно пройтись по списку циклом.
collect это функция приостановки, твой цикл просто останавливался на первой итерации и висел. Проблему решил не onEach а launchIn, который запускал collect() в новой корутине
Если тело forEach обернуть в launch{ } и внутри вызвать collect{ }, то эффект будет тот же
странно, делал так, не работало
понял, спасибо, хорошо описал все, так и есть, где-то далеко в глубине так и думал )
Можешь кстати зайти в launchIn, увидишь всю магию
Обсуждают сегодня