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), представляющий скомпилированный модуль.
Исключения
- Если
bufferSource
не является typed array, генерируетсяTypeError
. - Если компиляция не удалась, промис отклоняется с помощью
WebAssembly.CompileError
(en-US).
Примеры
Следующий пример (см. Нашу демонстрацию compile-streaming.html на GitHub и view it live) напрямую передаёт модуль .wasm из исходника, затем компилирует его в объект WebAssembly.Module
(en-US).
Поскольку функция compileStreaming()
принимает промис для объекта Response
, вы можете напрямую передать ему вызов WindowOrWorkerGlobalScope.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()
(en-US) и вызывается экспортированная функция.
Характеристики
Спецификация | Статус | Коммент |
---|---|---|
WebAssembly features for web embedding Определение 'compileStreaming()' в этой спецификации. |
Черновик | Первоначальное определение проекта. |
Совместимость с браузером
BCD tables only load in the browser
Смотрите также
- WebAssembly обзорная страница
- WebAssembly концепции
- Использование WebAssembly JavaScript API