You can always make a function that sync all async operations: sleep until a global variable is changed by the callback.
A pain, but still not that bad.
A pain, but still not that bad.
Edit: although you could emulate a sleep call by setting a (pediodic) timeout