@edvin at 8:40 .. the reason for the event is in case that came from elsewhere. It’s a small app, but the VM is responding to the Model (subscribe) as though someone else had initiated the model update.
I’d like to put something in place similar to WPF’s command binding. Right now, in both my JavaFX apps and the TornadoFX code I’ve been posting, I have the ViewModel responsible for the asynchrony. In WPF, it’s a separate entity called a command. Once you can break the command away from the ViewModel, it can be bound to actions just like the databinding of say a TextField.
Then, the Command could be issued from a Scene KeyListener, a Fragment’s Button, a hide event from the View/Scene/Stage, etc.
So, 8:40 can streamline the whole thing by returning <List<Customer>> from the Task, but the point is app-wide, consistent handling of the Model update rather than a combination of event passing and direct updating.