@hiskennyness So I know I'm jumping ahead a bit, but is there an existing example somewhere of using a dart stream with matrix?
I can cook one up, @zenflowapp. Let me look at Dart streams. Do you have a specific code snippet I can start from, or just a use case narrative? Oh, maybe an official CLJD demo?
Funny this came up. While messing with this latest example on async I got to worrying about MX behavior in a threaded app, then started fantasizing about replacing MX internal execution queues with core.async, which I think would solve threads easily and even clean up the code. Of course until core.async gets ported to CLJD... 🙂
Looking at the Dart doc, pending more details from your side, @zenflowapp I do not see a problem handling streams in MX: the consumer will simply assign (`mset!`) each new value into some input (`cI`) property, perhaps one created purposefully to serve as a reactive "sink" for the stream.
Any formulaic cell reading that "sink" property will then update automatically, as usual.
Or the stream handler can apply a bit of logic and decide on some existing cI sink that should be assigned some new value. This case arises when other program logic besides the stream handler might want to write to the same sink.
In a sense, every UI widget control constitutes a stream of user events, and widget event handlers are the stream consumers, and the above applies to event handlers: we could give such widgets a custom ephemeral input property clicked and then let any app formula interested read that property. Nice and simple for the widget handler code. Or, and how I usually proceed, the handler can go look for some MX object and write to one of its input properties. More work, but now the code is easier to follow.
As soon as you send me a use case or some code we can roll up a new example. hth! and happy Thanksgiving!