Skip to content

Commit 1e40ccb

Browse files
committed
👌 Improve listeners cleanup
1 parent 5d4dac7 commit 1e40ccb

1 file changed

Lines changed: 9 additions & 12 deletions

File tree

‎packages/browser-core/src/browser/webSocketObservable.ts‎

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,6 @@ function createWebSocketObservable() {
7474
return undefined
7575
}
7676

77-
const stopListeners: Array<() => void> = []
78-
7977
const { stop: stopInstrumentingConstructor } = instrumentConstructor(
8078
globalObject,
8179
'WebSocket',
@@ -91,7 +89,7 @@ function createWebSocketObservable() {
9189
...(protocols !== undefined ? { protocols } : {}),
9290
startClocks,
9391
})
94-
attachInstanceListeners(instance, observable, stopListeners)
92+
attachInstanceListeners(instance, observable)
9593
})
9694
}
9795
)
@@ -117,25 +115,22 @@ function createWebSocketObservable() {
117115
return () => {
118116
stopInstrumentingConstructor()
119117
stopInstrumentingSend()
120-
stopListeners.forEach((stop) => stop())
121-
stopListeners.length = 0
122118
}
123119
})
124120
}
125121

126-
function attachInstanceListeners(
127-
instance: WebSocket,
128-
observable: Observable<WebSocketContext>,
129-
stopListeners: Array<() => void>
130-
) {
122+
function attachInstanceListeners(instance: WebSocket, observable: Observable<WebSocketContext>) {
131123
const { stop: stopOpen } = addEventListener(instance, 'open', () => {
132124
observable.notify({
133125
state: 'open',
134126
instance,
135127
openClocks: clocksNow(),
136128
protocol: instance.protocol || '',
137129
})
130+
131+
stopOpen()
138132
})
133+
139134
const { stop: stopMessage } = addEventListener(instance, 'message', (event) => {
140135
observable.notify({
141136
state: 'message-in',
@@ -144,6 +139,7 @@ function attachInstanceListeners(
144139
at: clocksNow(),
145140
})
146141
})
142+
147143
const { stop: stopClose } = addEventListener(instance, 'close', (event) => {
148144
observable.notify({
149145
state: 'closed',
@@ -153,9 +149,10 @@ function attachInstanceListeners(
153149
wasClean: event.wasClean,
154150
at: clocksNow(),
155151
})
156-
})
157152

158-
stopListeners.push(stopOpen, stopMessage, stopClose)
153+
stopMessage()
154+
stopClose()
155+
})
159156
}
160157

161158
function computePayloadSize(data: unknown): number {

0 commit comments

Comments
 (0)