--- title: WebAssembly.instantiateStreaming() slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/instantiateStreaming translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/instantiateStreaming ---
WebAssembly.instantiateStreaming()
함수는 스트림 된 원본 소스에서 직접 WebAssembly 모듈을 컴파일하고 인스턴스화합니다. Wasm 코드를로드하는 가장 효율적이고 최적화 된 방법입니다.
Promise<ResultObject> WebAssembly.instantiateStreaming(source, importObject);
Instance
로 가져올 값을 포함하는 객체입니다. 컴파일 된 모듈의 각 선언 된 가져 오기에 대해 하나의 일치하는 속성이 있어야합니다. 그렇지 않으면 WebAssembly.LinkError가 발생합니다.두 개의 필드를 포함하는 ResultObject
로 해석되는 Promise
:
module
: 컴파일 된 WebAssembly 모듈을 나타내는 {{jsxref ( "WebAssembly.Module")}} 객체입니다. 이 Module
은 다시 인스턴스화되거나 postMessage()를 통해 공유 될 수 있습니다.instance
: Exported WebAssembly functions를 포함하는 {{jsxref ( "WebAssembly.Instance")}} 객체입니다.다음 예제 (GitHub의 instantiate-streaming.html 데모보기 및 view it live)에서는 원본 소스에서 .wasm 모듈을 직접 스트리밍 한 다음 컴파일하고 인스턴스화합니다. 약속은 ResultObject
로 충족됩니다.instantiateStreaming()
함수는 {{domxref("Response")}} 객체에 대한 promise를 받아들이므로 직접 {{domxref("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
의 인스턴스 구성원에 액세스하고 포함 된 내 보낸 함수를 호출합니다.
Specification | Status | Comment |
---|---|---|
{{SpecName('WebAssembly Embedding', '#webassemblyinstantiatestreaming', 'instantiateStreaming()')}} | {{Spec2('WebAssembly Embedding')}} | Initial draft definition. |
{{Compat("javascript.builtins.WebAssembly.instantiateStreaming")}}