WebAssembly.instantiateStreaming()

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

Syntax

Promise<ResultObject> 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를 받아들이므로 직접 WindowOrWorkerGlobalScope.fetch() 호출을 전달할 수 있으며 응답을 수행하면 함수에 응답을 전달합니다.

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

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

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

Specifications

Specification Status Comment
WebAssembly features for web embedding
The definition of 'instantiateStreaming()' in that specification.
Draft Initial draft definition.

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support611658 No47 No
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support6161 No58 ? No No

See also

문서 태그 및 공헌자

이 페이지의 공헌자: limkukhyun
최종 변경자: limkukhyun,