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

Reply via email to