У меня проблемы с привязкой компонента пользовательского интерфейса к наблюдаемой, которая получает обновленный прогресс из события http post.Я получаю IllegalStateException
Насколько я понимаю, проблема в том, что обновление привязки не происходит в потоке пользовательского интерфейса.Ответы, которые я прочитал, говорят, что мне нужно использовать runAsync, а затем указать блок пользовательского интерфейса для обновления компонента пользовательского интерфейса, но я не знаю, как этого добиться.
// View class
private val controller: ZumController by inject()
item("_Upload") {
isMnemonicParsing = true
action {
controller.uploadToServer()
}
}
bottom = label() {
useMaxWidth = true
padding = Insets(5.0, 10.0, 5.0, 10.0)
this.bind(controller.progress)
}
// Controller class
var progress = SimpleStringProperty("Select images to upload")
fun uploadToServer() {
images.forEach{ p ->
Fuel.upload("http://127.0.0.1:8089")
.add {FileDataPart(File(p), name = "file")}
.progress { readBytes, totalBytes ->
progress.value = (readBytes.toFloat() / totalBytes.toFloat() * 100).toString()}
.response { _ -> }
}
}
Как мне поступить?удостовериться, что пользовательский интерфейс обновляется во время потока приложения, когда мне нужен прогресс перед возвратом вызова функции (uploadToServer ())?Извините, если на этот вопрос уже был дан ответ, я все еще не понимаю, что именно здесь происходит.