fix(client): Rethrow async event emitter errors ASAP #1312
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Minor correction to the fix implemented in #1247
Reintroducing the
queueMicrotask
throwing approach to ensure errors are definitely not suppressed (e.g. they need to be thrown independently of all listener promisessettling
/fulfilling) and ideally if more than one of them occur, all of them are exposed to the global error handler. See discussion here #1247 (comment)The
queueMicrotask
API seems to be widely supported by browsers and runtimes so I don't think there's a need to worry. The alternative is also to usesetTimeout
which is also widely supported, but that might cause the errors to be thrown significantly later than when they were emitted.