reduce panic in stream canceling

This commit is contained in:
syumai 2024-04-21 03:47:19 +09:00
parent 0713696d4a
commit 1b359b90d9

View File

@ -179,11 +179,22 @@ func ConvertReaderToReadableStream(reader io.ReadCloser) js.Value {
return NewPromise(cb) return NewPromise(cb)
})) }))
rsInit.Set("cancel", js.FuncOf(func(js.Value, []js.Value) any { rsInit.Set("cancel", js.FuncOf(func(js.Value, []js.Value) any {
err := stream.Cancel() var cb js.Func
if err != nil { cb = js.FuncOf(func(this js.Value, pArgs []js.Value) any {
panic(err) defer cb.Release()
} resolve := pArgs[0]
return js.Undefined() reject := pArgs[1]
go func() {
err := stream.Cancel()
if err != nil {
reject.Invoke(Error(err.Error()))
return
}
resolve.Invoke()
}()
return js.Undefined()
})
return NewPromise(cb)
})) }))
return ReadableStreamClass.New(rsInit) return ReadableStreamClass.New(rsInit)
} }