WebAssembly.instantiateStreaming()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017.

WebAssembly.instantiateStreaming() 함수는 스트림 된 원본 소스에서 직접 WebAssembly 모듈을 컴파일하고 인스턴스화합니다. Wasm 코드를로드하는 가장 효율적이고 최적화 된 방법입니다.

Syntax

js
WebAssembly.instantiateStreaming(source, importObject);

Parameters

source

스트리밍, 컴파일 및 인스턴스화하려는 .wasm 모듈의 기본 소스를 나타내는 Response 객체 또는 promise.

importObject Optional

함수 또는 WebAssembly.Memory 객체와 같이 새로 생성 된 Instance로 가져올 값을 포함하는 객체입니다. 컴파일 된 모듈의 각 선언 된 가져 오기에 대해 하나의 일치하는 속성이 있어야합니다. 그렇지 않으면 WebAssembly.LinkError가 발생합니다.

Return value

두 개의 필드를 포함하는 ResultObject로 해석되는 Promise :

Exceptions

Examples

다음 예제 (GitHub의 instantiate-streaming.html 데모보기 및 view it live)에서는 원본 소스에서 .wasm 모듈을 직접 스트리밍 한 다음 컴파일하고 인스턴스화합니다. 약속은 ResultObject로 충족됩니다.instantiateStreaming() 함수는 Response 객체에 대한 promise를 받아들이므로 직접 fetch() 호출을 전달할 수 있으며 응답을 수행하면 함수에 응답을 전달합니다.

js
var importObject = { imports: { imported_func: (arg) => console.log(arg) } };

WebAssembly.instantiateStreaming(fetch("simple.wasm"), importObject).then(
  (obj) => obj.instance.exports.exported_func(),
);

그런 다음 ResultObject의 인스턴스 구성원에 액세스하고 포함 된 내 보낸 함수를 호출합니다.

명세서

Specification
WebAssembly Web API
# dom-webassembly-instantiatestreaming

브라우저 호환성

BCD tables only load in the browser

See also