WebAssembly.compileStreaming()

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

Синтаксис

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

Parameters

source

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

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

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

Исключения

  • Если bufferSource не является typed array, генерируется TypeError.
  • Если компиляция не удалась, промис отклоняется с помощью WebAssembly.CompileError.

Примеры

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

js
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() и вызывается экспортированная функция.

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

Specification
WebAssembly Web API
# dom-webassembly-compilestreaming

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

BCD tables only load in the browser

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