BP
https://kotlinlang.org/docs/flow.html#flow-context вот оператор который нужно использовать перед collectom
Size: a a a
BP
BP
stateFlow.value = newValue должен взять контекст где исполняется.a
withContext? А зачем? Если я создаю корутин скоуп с диспатчером на JavaFX потоке. Мне на нём и надо коллектить, потому что UI обновляется. А емиты я делаю с IO контекстом.a
a
BP
flow холодный, и если не сделать переключения контекста то emit будет выполняться в контексте collect.stateFlow.value = newValue - все окBP
onDock может выполнятся несколько разa
a
flow { ... }, то внутри этого блока нельзя менять контекст, как я понял. Но у меня другая ситуация, у меня есть MutableStateFlow. И я делаю что-то типа:someScope.launch(Dispatchers.IO) {
val newData = calculateNewData()
someFlow.emit(newData)
}
...
otherScope.launch(Dispatchers.JavaFX) {
someFlow.collect {...}
}onDock и делаю на ней cancel в onUndock. Сначала сделал cancel на скоупе, но тут как раз при повторном вызове onDock уже launch не работает.BP
someFlow.value = newData. не уверен что первый вариант равносилен второмуonDock уже launch не работает BP
BP
BP
a
someFlow.value = newData - не саспенд функция и это можно делать вне корутины. Тоже проверил)BP
onUndock и onDock имеют одинаковое количество (мало ли). Также написать минимальный пример без торнады, если повторяется то уже разбираемся почему (не думаю что проблема в торнаде) .a

BP
BP
L
data class City(val name: String) {
override fun toString() = name
}overrideк чему относится?