WebAssembly.compileStreaming()

Функция WebAssembly.compileStreaming() компилирует WebAssembly.Module (en-US) непосредственно из потокового исходника. Эта функция полезна, если необходимо скомпилировать модуль до того, как его можно создать (в противном случае следует использовать функцию WebAssembly.instantiateStreaming() (en-US).

Синтаксис

Promise<WebAssembly.Module> WebAssembly.compileStreaming(source);

Parameters

source
Промис, или Response, который будет выполнен с одним, представляющим основной источник модулем .wasm, который вы хотите передать и скомпилировать.

Возвращаемое значение

Промис (Promise), который разрешает объект WebAssembly.Module (en-US), представляющий скомпилированный модуль.

Исключения

Примеры

Следующий пример (см. Нашу демонстрацию compile-streaming.html на GitHub и view it live) напрямую передаёт модуль .wasm из исходника, затем компилирует его в объект WebAssembly.Module (en-US).
Поскольку функция compileStreaming() принимает промис для объекта Response, вы можете напрямую передать ему вызов WindowOrWorkerGlobalScope.fetch(), и он передаст ответ в выполняемую функцию.

var importObject = { imports: { imported_func: arg => console.log(arg) } };

WebAssembly.compileStreaming(fetch('simple.wasm'))
.then(module => WebAssembly.instantiate(module, importObject))
.then(instance => instance.exports.exported_func());

Затем создаётся полученный экземпляр модуля с помощью WebAssembly.instantiate() (en-US) и вызывается экспортированная функция.

Характеристики

Спецификация Статус Коммент
WebAssembly features for web embedding
Определение 'compileStreaming()' в этой спецификации.
Черновик Первоначальное определение 
проекта.

Совместимость с браузером

BCD tables only load in the browser

Смотрите также