为了账号安全,请及时绑定邮箱和手机立即绑定

如何在错误后保持 Golang Web 装配实例运行并退出 (代码:2)

如何在错误后保持 Golang Web 装配实例运行并退出 (代码:2)

Go
慕尼黑5688855 2022-10-04 17:08:07
我有这个程序使用代码将字节从JavaScript发送到戈朗网络组件:func sendBytes(this js.Value, args []js.Value) interface{} {    if len(args) < 1 {        return 0    }    array := args[0]    fmt.Println(array.Type())    buf := make([]byte, array.Length())    n := js.CopyBytesToGo(buf, array)    fmt.Println(buf)    return n}func registerCallbacks() {    js.Global().Set("sendBytes", js.FuncOf(sendBytes))}当我使用其他内容执行时,我会在浏览器中杀死我的整个实例,我必须再次运行它。这是我如何执行发送字节()的屏幕截图。sendBytesUint8Array 无论发生什么错误,我该如何保持其运行?
查看完整描述

1 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

根据你的截图,当你把一个数字传递给 时,代码行会导致恐慌,然后WASM代码就会退出。如您所知,不应在号码上调用。sendBytes()array.Length()sendBytes()


如果您确实需要它来保持运行,则可以在Go中使用恢复,类似于:


func sendBytes(this js.Value, args []js.Value) interface{} {

    defer func() {

        if r := recover(); r != nil {

            fmt.Println("Recovered from", r)

        }

    }() 


    if len(args) < 1 {

        return 0

    }

    // ...

}


查看完整回答
反对 回复 2022-10-04
  • 1 回答
  • 0 关注
  • 142 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号