Skip to content

Commit 1b359b9

Browse files
committed
reduce panic in stream canceling
1 parent 0713696 commit 1b359b9

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

internal/jsutil/stream.go

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -179,11 +179,22 @@ func ConvertReaderToReadableStream(reader io.ReadCloser) js.Value {
179179
return NewPromise(cb)
180180
}))
181181
rsInit.Set("cancel", js.FuncOf(func(js.Value, []js.Value) any {
182-
err := stream.Cancel()
183-
if err != nil {
184-
panic(err)
185-
}
186-
return js.Undefined()
182+
var cb js.Func
183+
cb = js.FuncOf(func(this js.Value, pArgs []js.Value) any {
184+
defer cb.Release()
185+
resolve := pArgs[0]
186+
reject := pArgs[1]
187+
go func() {
188+
err := stream.Cancel()
189+
if err != nil {
190+
reject.Invoke(Error(err.Error()))
191+
return
192+
}
193+
resolve.Invoke()
194+
}()
195+
return js.Undefined()
196+
})
197+
return NewPromise(cb)
187198
}))
188199
return ReadableStreamClass.New(rsInit)
189200
}

0 commit comments

Comments
 (0)