golang/wasm 错误(未捕获(承诺中)TypeError:导入对象字段“gojs”不是对象)

问题描述 投票:0回答:1

我一直在使用 Golang 和 WASM 制作一个基本的应用程序(一个基本的游戏,但它对于这个问题来说并不是那么重要,因为你很快就会发现)并了解技术,所以我建立了一个项目并且运行良好...直到它停止工作,对吧?我不太确定我做了什么,但代码停止执行,没有任何错误,除了

"Uncaught (in promise) TypeError: import object field 'gojs' is not an Object". 
由此我知道它与
fetch()
有关,我通过注释掉代码的不同部分来确认这一点,直到我将其范围缩小到这一行:

//errors here
WebAssembly.instantiateStreaming(fetch("main.wasm"), go.importObject).then((result) => {
    //not here (obviously not running though)
    go.run(result.instance);
});

这也不是我原来的应用程序,因为我创建了一个新应用程序,并且(这次确保)直接复制并粘贴本文中的每一行代码:https://golangbot.com/web assembly-using-go / 这样我就可以确定这不是我的代码的问题。 (因为我不会写)

我尝试做的一切来解决这个问题(按顺序):

  • 注释掉我最近写的代码(websocket 的东西)
  • 注释掉我所有的Go代码
  • 注释掉运行
  • 重新安装 golang 并获取新的 wasm_exec
  • 注释掉 WebAssembly.instantiateStreaming(此处停止显示错误)
  • 创建了一个新项目,并确保仅从本教程中复制和粘贴:https://golangbot.com/webassemble-using-go/
  • 重新安装 golang 并获取新的 wasm_exec(再次)

这是我的代码:

资产/main.go

package main

import (
    "fmt"
)

func main() {
    fmt.Println("Go Web Assembly")
}

服务器/server.go

package main

import (
    "fmt"
    "net/http"
)

func main() {
    err := http.ListenAndServe(":9000", http.FileServer(http.Dir("./static")))

    if err != nil {
        fmt.Println("Failed to start server", err)
        return
    }
}

静态/index.html

<html>
    <head>
    <meta charset="utf-8"/>
    <script src="wasm_exec.js"></script>
    <script>
        const go = new Go();
        WebAssembly.instantiateStreaming(fetch("main.wasm"), go.importObject).then((result) => {
        go.run(result.instance);
            });
        </script>
    </head>
<body></body>
</html>

静态/wasm_exec.js

I'm not putting this here unless I need to...

我使用的命令(来自项目根目录):

go run server/server.go
(运行服务器)
GOOS=js GOARCH=wasm go assets/build main.go
(要构建 wasm 文件,我知道我不必将文件拖放到静态文件夹中,这只是临时文件夹)

这是我在 StackOverflow 上的第一个问题,所以如果您需要任何我没有在这里发布的内容,请告诉我。 我已经尽力在互联网上找到一些东西,但我找不到有关此错误的任何内容,请帮助。

javascript go webassembly
1个回答
0
投票

我也有同样的问题。然后我发现这个问题在Firefox中不存在。我在 chrome 中为“Experimental WebAssembly”设置了一些标志值以寻求解决方案 请参阅:chrome://flags

© www.soinside.com 2019 - 2024. All rights reserved.