class AsyncTestView : View("Async Test") { val taskProgress = SimpleDoubleProperty() val taskMessage = SimpleStringProperty() val taskRunning = SimpleBooleanProperty() override val root = vbox { button("Run") { setOnAction { runAsync { println("fire and forget") } val t = runAsync { println("paired with a success") } taskProgress.bind( t.progressProperty() ) taskMessage.bind( t.messageProperty() ) taskRunning.bind( t.runningProperty() ) t.success { println("success message") } } } padding = Insets(40.0) } } class AsyncTestApp : App(AsyncTestView::class)