WebAssembly 返回的字符串在 JS 里怎么正确读取?

夏侯静静 阅读 55

我用 Rust 编译了个 wasm 模块,导出一个返回字符串的函数,但在 Vue 里调用后拿到的是一堆数字,不知道怎么转成正常字符串。试过 TextDecoder 但好像位置不对,文档看得有点懵。

这是我在 Vue 组件里的调用代码:

<script setup>
import init, { get_message } from '@/wasm/pkg/my_wasm.js'

let msg = ''
onMounted(async () => {
  await init()
  const ptr = get_message() // 返回的是个数字指针?
  // 接下来该怎么做?直接 toString() 不行
  msg = ptr.toString()
})
</script>

<template>
  <div>{{ msg }}</div>
</template>
我来解答 赞 4 收藏
二维码
手机扫码查看
1 条解答
Mr-庆晨
Mr-庆晨 Lv1
直接用 TextDecoder 解码内存里的字符串。获取 get_message 返回的指针后,使用 new TextDecoder().decode(memory.buffer.slice(ptr, ptr + length))。记得从 wasm 模块导出内存实例 memory
点赞
2026-03-21 13:01