【发布时间】:2021-02-03 16:30:01
【问题描述】:
运行以下代码时出现Uncaught (in promise) TypeError: second argument must be an object 错误:
async function loadWasm(url) {
const fetchPromise = fetch(url)
const { module, instance } = await WebAssembly.instantiateStreaming(fetchPromise)
// [...]
}
loadWasm('http://localhost:3000/path/to/file.wasm')
查看documentation,它说WebAssembly.instantiateStreaming (importObject) 的第二个参数是可选的,所以我不明白为什么浏览器仍然强制要求它?
我已经在 Firefox 78.7.0esr(64 位)和 Chrome 88.0.4324.96(官方版本)(64 位)中对此进行了测试。如果它很重要,代码会在 ruby on rails 6.1 应用程序中使用 webpack 5 进行转译。
更新:
我打开an issue on mdn's github repository 认为文档可能需要更新。到目前为止,documentation is good 似乎是一个实现问题。待确认。
更新:
这既不是实现问题,也不是文档错误。我在下面的答案中发布了我对这个问题的结论。
【问题讨论】:
-
注意到github.com/WebAssembly/spec/issues/1284现在存在规范问题
标签: javascript parameters webassembly