by starmole on 3/28/25, 10:12 PM
You can emulate synchronous await by using a worker thread, marshal your async operation to the main thread, then in the worker use Atomics.wait() to blocking wait on a SharedArrayBuffer variable. Once the async operation completes on main, write back the result to the SharedArrayBuffer and wake up the waiting variable.
I believe that's also what emscripten uses to emulate synchronous posix calls.