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

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

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

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

ВозможностьChromeEdgeFirefoxInternet ExplorerOperaSafari
Базовая поддержка611658 Нет47 Нет
ВозможностьAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Базовая поддержка6161 Нет58 ? Нет Нет

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

Метки документа и участники

Внесли вклад в эту страницу: warsan
Обновлялась последний раз: warsan,