未验证 提交 b73ea2fe 编写于 作者: A Asher

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.
上级 e1702a1d
......@@ -126,6 +126,7 @@ export class VscodeProvider {
const cleanup = () => {
proc.off("error", reject)
proc.off("exit", onExit)
proc.off("message", onMessage)
clearTimeout(timeout)
}
......@@ -143,16 +144,17 @@ export class VscodeProvider {
reject(new Error(`VS Code exited unexpectedly with code ${code}`))
}
proc.on("message", (message: ipc.VscodeMessage) => {
const onMessage = (message: ipc.VscodeMessage) => {
logger.trace("got message from vscode", field("message", message))
if (fn(message)) {
cleanup()
resolve(message)
}
})
}
proc.once("error", reject)
proc.once("exit", onExit)
proc.on("message", onMessage)
proc.on("error", reject)
proc.on("exit", onExit)
})
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册