面试题答案
一键面试- 加载 WebAssembly 模块:
- 首先,使用
fetch
方法获取.wasm
文件的二进制内容。 - 然后,调用
WebAssembly.instantiateStreaming
方法将二进制内容实例化。例如:
- 首先,使用
async function loadWasm() {
const response = await fetch('yourModule.wasm');
const instance = await WebAssembly.instantiateStreaming(response);
return instance;
}
- 导入并调用函数:
- 假设 WebAssembly 模块导出的函数名为
exportedFunction
。 - 实例化完成后,从实例的
exports
对象中获取该函数。 - 调用函数并确保传递正确的整数类型,接收返回的整数类型。例如:
- 假设 WebAssembly 模块导出的函数名为
async function main() {
const wasmInstance = await loadWasm();
const exportedFunction: (num: number) => number = wasmInstance.instance.exports.exportedFunction as (num: number) => number;
const input: number = 42;
const result: number = exportedFunction(input);
console.log(`Result: ${result}`);
}
main();
在这个过程中,TypeScript 会根据类型注解确保 input
是 number
类型(在 WebAssembly 中对应整数),并且 result
也是 number
类型(对应 WebAssembly 返回的整数)。同时,通过 as
断言将从 exports
获取的函数转换为期望的类型。