Это связано с предыдущим вопросом WebAssembly в асинхронном коде
По сути, этот вопрос касается проблемы блокирования основного потока WebAssembly, и ответ на этот вопрос заключается впереместить код WebAssembly веб-работнику.Это работает.
Проблема теперь в том, что WebAssembly блокирует onmessage () на рабочем.
Мой долго работающий код WebAssembly имеет функции, такие как play (), pause (), stop ()и т. д. play () периодически проверяет флаг паузы и флаг остановки, чтобы определить, должен ли play () вернуться.Pause () и stop () используются для установки этих флагов.
Основной поток JavaScript вызывает postMessage () для отправки сообщения работнику, который затем вызывает play ().
Так как onmessage () заблокирован, работник не будет иметь возможности получать дальнейшие сообщения для выполнения pause () или stop () до завершения play ().Это победит сами цели паузы / остановки.
Кажется, простой вариант использования play / pause / stop не может быть поддержан WebAssembly.
Любые комментарии или предложения?
Кстати, этот вариант использования хорошо поддерживается несуществующим Google PNaCl.
Спасибо.