--- 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")}}