有时候我们需要查看wasm模块中的成员信息及对其调用方法
//wasm
(module(func $add32 (param $a i32)(param $b i32)(result i32)local.get $alocal.get $bi32.addreturn)(func $sub32 (param $a i32)(param $b i32)(result i32)local.get $a local.get $bi32.sub return)(func $mul32 (param $a i32)(param $b i32)(result i32)local.get $alocal.get $bi32.mul return)(export "add" (func $add32))(export "sub" (func $sub32))(export "mul" (func $mul32))
)
//html部分
<html><head><meta http-equiv="content-type" content="text/html;charset=UTF-8"/><title>测试用WebAssembly.Moudle.exports导出模块所有的函数或成员信息</title></head><body><script type="text/javascript">fetch("util.wasm").then((response)=>response.arrayBuffer())//返回模块中的二进制文件.then((bytes)=>{return WebAssembly.compile(bytes);//把 WebAssembly 二进制代码编译为一个 WebAssembly.Module ,不进行实例化}).then((result)=>{//导出模块中的所有导出成员或方法let modules=WebAssembly.Module.exports(result);for(const e in modules){//查看模块中的所有被导出的方法信息console.log(modules[e]);}//实例化模块方法并调用其中的add()方法,当然也可以调用其它的方法WebAssembly.instantiate(result).then(instance=>{console.log(instance.exports.add(5,6));})})</script></body>
</html>