如何在JavaScript中直接实例化WebAssembly模块

8 浏览
0 Comments

如何在JavaScript中直接实例化WebAssembly模块

我看到的示例基本上是这样的:

fetch('simple.wasm').then(response =>
  response.arrayBuffer()
).then(bytes =>
  WebAssembly.instantiate(bytes, {})
).then(result =>
  result.instance.exports...
)

但我希望在不进行额外的HTTP请求的情况下完成。想知道是否只有这种方式(或这种方式的变体),这将很有帮助:

var binary = '...mywasmbinary...'
var buffer = new ArrayBuffer(binary.length)
var view = new DataView(buffer)
for (var i = 0, n = binary.length; i < n; i++) {
  var x = binary[i]
  view.setInt8(i * 8, x)
}

想知道是否需要担心字节序等问题。

或者可能使用URL和blob来做些什么可能更好,我不确定。

0