On 05/31/2017 02:35 PM, hh via use-livecode wrote:
"Synchronous" means here that the callback is done in the order it appears in the list of js instructions, i.e. "synchronous to the instruction order".If you say in your js function instruction1; callback1; instruction2; callback2; then you can't control what's done first. This is the price we have to pay for speed (multi-threading). It is even possible that callback2 arrives at LC _before_ one of instruction1; callback1; instruction2; is finished.
I had a similar need in PowerDebug in order to handle asynchronous events over socket connections for remote debugging. And dealt with it thusly:
Requests are sent asynchronously and trigger a callback message when they're done. The callback message payload contains a reference to the message that called it. That way a callback handler can associate the returned message with the calling handler, and if needed a wait loop can implement a procedural pseudo-synchronous call.
It's kind of the way session cookies work in a browser. It probably won't work for every use case, but when I need to define a statement order from asynchronous events it does the trick.
-- Mark Wieder [email protected] _______________________________________________ use-livecode mailing list [email protected] Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
