Skip to content

Commit 1f4270e

Browse files
Merge pull request #624 from liquity/isolate-listeners
fix: don't let listener errors mess up event dispatch
2 parents 374f959 + 3d51ea6 commit 1f4270e

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

packages/providers/src/WebSocketAugmentedProvider.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,12 @@ const sequence = <T, U, V>(
7979
f(u => g(h)(u, context))(t, context);
8080
};
8181

82+
const defer = <T>(f: (t: T) => void) => (t: T) => {
83+
setTimeout(() => {
84+
f(t);
85+
}, 0);
86+
};
87+
8288
export const WebSocketAugmented = <T extends new (...args: any[]) => BaseProvider>(Base: T) => {
8389
let webSocketAugmentedProvider = class extends Base implements WebSocketAugmentedProvider {
8490
_wsProvider?: WebSocketProvider;
@@ -216,7 +222,7 @@ export const WebSocketAugmented = <T extends new (...args: any[]) => BaseProvide
216222
return [
217223
f,
218224
(u: U) =>
219-
g(f)(u, {
225+
g(defer(f))(u, {
220226
isActive: () => this._blockListeners.has(f),
221227
removeMe: () => this._blockListeners.delete(f)
222228
})

0 commit comments

Comments
 (0)