}.stateIn(CoroutineScope(Job()))
Но я не понимаю что такая конструкция делает... Зачем ей собственный джоб?
А нету asStateFlow ?
На flow. map {}.asStateFlow
Нету, asStateFlow это метод на MutableStateFlow который просто возвращает немутабельный враппер
Тогда по идее нужно получить скоуп от текущего MutState, и передать его. Но я не настоящий сварщик, с ним не работал
Нету у MutableStateFlow никакого скоупа который можно было бы извлечь а судя по исходникам так и вообще никакого нет
т.к. флоу по определёнию холодный поток, а котлин не знает, что до этого у вас там был StateFlow, то нужен скоуп, в котором запустится джоба, собирающая элементы флоу, которые потом отправятся в стейтфлоу val flow = flow { // emitting here } // примерно следующее сделает функция stateIn val stateFlow = MutableStateFlow() scope.launch { for (item in flow) stateFlow.value = item } return stateFlow.asStateFlow()
И нафига тогда stateIn suspend?
чтобы дождаться первый элемент из флоу, и положить его в .value
Обсуждают сегодня