当使用WebAssembly加载wasm文件
使用webassembly.instantiate或者instance加载wasm文件时
加载的时候可能会有下面这些报错
TypeError:Imports argument must be present and must be a object
官方函数说明:instantiate(bufferArray,importObject);其中importObject可以省略,但是省略的前提是在wasm文件中没有使用到导入函数或导入属性。如果报这个错了,说明一定是用了导入函数或属性,所以你一定要传importObject进去。这个importObject提供了你在wasm中引用的函数或属性。当然你可能会问那我不知道提供了哪些函数怎么办,当你传一个空的对象进去时一定会发生下面一个错误。
Uncaught (in promise) LinkError: Import #0 module="\*\*" function="\*\*" error:function import requires a callable
这个错误就是告诉你,你的导入对象虽然有了但是缺少他要的东西所以还是不能运行具体是什么上面也会写。还有如果你是使用emcc编译的话,你编译会生成 ***.js和***.wasm。你直接加载js文件就可以啦,这个js文件会自动编译这个wasm文件的。而且github上面作者是建议你使用这个js文件来加载wasm文件而不是你自己去加载wasm文件。
Tips:
编译的时候加上 -s SINGLE_FILE=1 -o target.js 可以生成单js文件