我有这个程序使用代码将字节从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
}
// ...
}
- 1 回答
- 0 关注
- 142 浏览
添加回答
举报
0/150
提交
取消