javascript - TypeScript:此表达式不可调用。没有“ExportValue”类型的成分是可调用的。WebAssembly 模块
问题描述
当我使用 Deno 在 index.ts 中运行此代码时,我遇到了这个问题。
const wasm = await Deno.readFile("./wasm_test/pkg/wasm_test_bg.wasm");
const wasmModule = new WebAssembly.Module(wasm);
const wasmInstance = new WebAssembly.Instance(wasmModule);
const wasmTest = wasmInstance.exports;
wasmTest.sum(1, 3); // Error
错误:此表达式不可调用。没有“ExportValue”类型的成分是可调用的。
调用时出现错误sum
,结果应该是 4。当我将它作为 index.js 运行时,它可以完美运行。我使用 wasm-pack 编译 Rust 代码。
解决方案
问题是名称add
未知。更改代码的第 4 行,如下所示:
const wasm = await Deno.readFile("./add.wasm");
const wasmModule = new WebAssembly.Module(wasm);
const wasmInstance = new WebAssembly.Instance(wasmModule);
const sum = wasmInstance.exports.sum as CallableFunction; // exports.add if you test with the below linked wasm.
console.log(sum(1, 3))
请参阅文档。
对于我的测试,我在这里找到了一个带有 -function 的 wasmadd
示例。
推荐阅读
- excel - 在excel的文本列中查找重复次数超过特定数字的单元格
- react-native - 构建 React-Native 应用程序时出错
- haskell - 如何在 Hspec 测试中使用 QuickCheck?
- python - Pandas 按条件分组
- c# - C# DataGridView 条件格式
- ios - 个人热点的多人连接不起作用
- kendo-ui - 如何增加条的宽度(Kendo + Angular)
- sql - 在使用 PostgreSQL 的选择查询中删除基于字段的重复行?
- r - 如何按其他变量的因子水平排列 Y 轴
- java - Neo4j:在 C:\Program Files\Java\jdk-10.0.2\bin\bin\java.exe 找不到 java