Esperar Sincronamente por Mensagem no Web Worker

Existe alguma maneira de esperar ou verificar sincronicamente uma nova mensagem em um web-worker?

Eu tenho um grande corpo de código complicado (LLVM compilado do emscripten) que não posso refatorar em torno de retornos de chamada.

Eu preciso ter certeza de que o código após uma determinada linha não é executado até que eu receba e manipule uma mensagem do thread da interface do usuário. Se eu bloquear com um loop while, o loop de eventos nunca é executado, por isso não posso receber mensagens.

questionAnswers(3)

yourAnswerToTheQuestion