autobahn-js icon indicating copy to clipboard operation
autobahn-js copied to clipboard

Support call cancelling via AbortController

Open trombipeti opened this issue 1 year ago • 0 comments

Currently, call cancelling is implemented with a simple cancel() method on the returned Promise object. This is not perfect for the following reasons:

  • The cancel() method is "lost" after calling .then() on the promise
  • when calling cancel(), it is impossible to specify the reason with which the original promise will get rejected, so one must experiment/look in the library code to see that it is always a new Error("Cancelled")

I think it would be fairly easy to implement this: https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal#implementing_an_abortable_api

(I don't know if this is relevant, but @types/autobahn will need to get updated anyways, too, as it doesn't declare the cancel() method, and wouldn't have the AbortSignal parameter either)

trombipeti avatar Aug 15 '23 04:08 trombipeti