Функция 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()' в этой спецификации. |
Черновик | Первоначальное определение проекта. |
Совместимость с браузером
Компьютеры | Мобильные | Server | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
compileStreaming | Chrome Полная поддержка 61 | Edge Полная поддержка 16 | Firefox Полная поддержка 58 | IE Нет поддержки Нет | Opera Полная поддержка 47 | Safari Нет поддержки Нет | WebView Android Полная поддержка 61 | Chrome Android Полная поддержка 61 | Firefox Android Полная поддержка 58 | Opera Android ? | Safari iOS Нет поддержки Нет | Samsung Internet Android Полная поддержка 8.0 | nodejs Нет поддержки Нет |
Легенда
- Полная поддержка
- Полная поддержка
- Нет поддержки
- Нет поддержки
- Совместимость неизвестна
- Совместимость неизвестна
Смотрите также
- WebAssembly обзорная страница
- WebAssembly концепции
- Использование WebAssembly JavaScript API