WebAssembly.compileStreaming()
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since ÑенÑÑбÑÑ 2021 г..
* Some parts of this feature may have varying levels of support.
ФÑнкÑÐ¸Ñ 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> |
СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами
СмоÑÑиÑе Ñакже
- WebAssembly обзоÑÐ½Ð°Ñ ÑÑÑаниÑа
- WebAssembly конÑепÑии
- ÐÑполÑзование WebAssembly JavaScript API