значение только в suspend функции?
насколько я помню, да. но можно сделать как переменную, при инициализации получающую флоу, а-ля val variable = repo.getFlow().flatMap*
Если речь про обычный Flow, то emit происходит внутри его билдера. Если про StateFlow/SharedFlow, то все так же, как и с LiveData. Но обсервить изменения всегда нужно внутри CoroutineScope. Может я вас не очень понял, но в этой цепочке не участвуют suspend-функции обычно.
Да, я уже вроде решил, через флоу, сейчас проверим. Спасибо. Я эмит просто обернул в скоуп корутин
В смысле эмит вы обернули?) Покажите-ка ваш флоу
а для чего такой код пишется? связан с MVI?
Ну, во вьюмоделе можно будет просто переопрелить маппер из интента в стейт, вроде должно быть удобно
О май гад
я просто в танке) маппер, интент, стейт - это из либы какой-то?
Нет
Может вам виднее, я не пользовался ConflatedBroadcastChannel, но я на 90% уверен, что он тут не нужен. Также не очень понятно зачем вам тут билдер ливдаты. Можно обойтись простым Flow, если данные генерируются внутри билдера, а если нужно как в ливдате, то StateFlow/SharedFlow
ConflatedBroadcastChannel использую потому что не нужно передавать начальное значение (оно есть у стейта, а не интента). По поводу лив даты не знаю, разве будет нормально обрабатыватся лайфсайкл фрагмента с подпиской? Я андроид не так давно изучаю. А сам код, который скинул это калька с flutter bloc
Для работы по лайфсайклу просто устанавливается нужный скоуп(для фрагмента желательно юзать viewLifecycleOwner), а также лучше использовать flowWithLifecycle
Спасибо, посмотрим
Обсуждают сегодня