WebAssembly.compileStreaming()
Функция WebAssembly.compileStreaming()
компилирует WebAssembly.Module
непосредственно из потокового исходника. Эта функция полезна, если необходимо скомпилировать модуль до того, как его можно создать (в противном случае следует использовать функцию WebAssembly.instantiateStreaming()
.
Синтаксис
Promise<WebAssembly.Module> WebAssembly.compileStreaming(source);
Parameters
Возвращаемое значение
Промис (Promise
), который разрешает объект WebAssembly.Module
, представляющий скомпилированный модуль.
Исключения
- Если
bufferSource
не является typed array, генерируетсяTypeError
. - Если компиляция не удалась, промис отклоняется с помощью
WebAssembly.CompileError
.
Примеры
Следующий пример (см. Нашу демонстрацию compile-streaming.html на GitHub и view it live) напрямую передаёт модуль .wasm из исходника, затем компилирует его в объект WebAssembly.Module
.
Поскольку функция compileStreaming()
принимает промис для объекта Response
, вы можете напрямую передать ему вызов 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()
и вызывается экспортированная функция.
Характеристики
Specification |
---|
WebAssembly Web API # dom-webassembly-compilestreaming |
Совместимость с браузерами
BCD tables only load in the browser
Смотрите также
- WebAssembly обзорная страница
- WebAssembly концепции
- Использование WebAssembly JavaScript API