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()' в этой спецификации.
Черновик Первоначальное определение 
проекта.

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

Update compatibility data on GitHub
КомпьютерыМобильныеServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidEdge MobileFirefox для AndroidOpera для AndroidiOS SafariSamsung InternetNode.js
Базовая поддержкаChrome Полная поддержка 61Edge Полная поддержка 16Firefox Полная поддержка 58IE Нет поддержки НетOpera Полная поддержка 47Safari Нет поддержки НетWebView Android Полная поддержка 61Chrome Android Полная поддержка 61Edge Mobile Нет поддержки НетFirefox Android Полная поддержка 58Opera Android ? Safari iOS Нет поддержки НетSamsung Internet Android Нет поддержки Нетnodejs Нет поддержки Нет

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки
Совместимость неизвестна  
Совместимость неизвестна

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

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

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