【问题标题】:receive 2-d array args as js.Value and want an array ([]js.Value)接收二维数组 args 作为 js.Value 并想要一个数组 ([]js.Value)
【发布时间】:2020-10-08 15:25:40
【问题描述】:

我正在使用“syscall/js”将 Go-WebAssembly 函数导出到 JavaScript。 Go中的函数要求是这样的:

func x (this js.Value, args []js.Value) 接口{}

现在我想将一个二维数组从 JavaScript 传递给 Go。我将它(在 JavaScript 中是 [][]byte )作为 args[0] 接收,它只是一个不支持像 args[0][i 这样的索引的 js.Value ],所以我无法像这样进一步处理它

buffer := make([][]byte, args[0].Length())
for i:=0; i<len(buffer); i++{
    js.CopyBytesToGo(buffer[i], args[0][i])
}

错误信息将是:

无效操作:args[0][i](js.Value类型不支持索引)

如何才能正确接收 args[0] 作为二维数组 []js.Value?我尝试使用 interface{} 接收 args[0],但它不起作用。

【问题讨论】:

    标签: javascript go webassembly


    【解决方案1】:

    嗯,根据syscall/js 包文档,我自己找到了答案。解决方案是使用 args[0].Index(int i) 作为我想要的 js.Value 一维数组。感谢您查看我的问题。

    【讨论】:

    • 我同意这个信息不容易找到;在过去的几周里,我一直在努力解决这样的问题。我刚刚完成了一篇关于此的文章,包括示例:blog.claude.nl/tech/howto/…;希望对您或其他人有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-21
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多