Skip to content

Commit b73ea2f

Browse files
committed
Unbind message handler itself after getting message
Also switch `once` to `on` since we `off` them later anyway so no point in making Node do it twice.
1 parent e1702a1 commit b73ea2f

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/node/vscode.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ export class VscodeProvider {
126126
const cleanup = () => {
127127
proc.off("error", reject)
128128
proc.off("exit", onExit)
129+
proc.off("message", onMessage)
129130
clearTimeout(timeout)
130131
}
131132

@@ -143,16 +144,17 @@ export class VscodeProvider {
143144
reject(new Error(`VS Code exited unexpectedly with code ${code}`))
144145
}
145146

146-
proc.on("message", (message: ipc.VscodeMessage) => {
147+
const onMessage = (message: ipc.VscodeMessage) => {
147148
logger.trace("got message from vscode", field("message", message))
148149
if (fn(message)) {
149150
cleanup()
150151
resolve(message)
151152
}
152-
})
153+
}
153154

154-
proc.once("error", reject)
155-
proc.once("exit", onExit)
155+
proc.on("message", onMessage)
156+
proc.on("error", reject)
157+
proc.on("exit", onExit)
156158
})
157159
}
158160

0 commit comments

Comments
 (0)