Я пытаюсь создать сервер скриншотов, используя nodejs и selenium-webdriver (geckodriver). Для сокращения времени ответа я хочу, чтобы веб-драйвер оставался открытым до тех пор, пока сервер не будет выключен. Все работает отлично, кроме выхода из драйвера, когда сервер остановлен (через SIGINT).

Это мой текущий код

Вызывается до запуска сервера nodejs:

process.on("SIGINT", () ={amp}gt; this.exitHandler()); 

Обработчик выхода:

 private async exitHandler() { console.log("exitHandler"); try { await this.router.screenshotter.exit(); console.log("driver closed"); process.exit(0); } catch (e) { console.error("failed to exit driver:", e); } } 

screenshotter.exit() просто вызывает webDriver.quit()

когда я останавливаю сервер, exitHandler регистрируется и через несколько секунд регистрируется следующая ошибка:

 failed to exit driver: Error: ECONNREFUSED connect ECONNREFUSED 127.0.0.1:63213 at ClientRequest.{amp}lt;anonymous{amp}gt; (C:...node_modulesselenium-webdriverhttpindex.js:258:15) at ClientRequest.emit (events.js:198:13) at Socket.socketErrorListener (_http_client.js:392:9) at Socket.emit (events.js:198:13) at emitErrorNT (internal/streams/destroy.js:91:8) at emitErrorAndCloseNT (internal/streams/destroy.js:59:3) at process._tickCallback (internal/process/next_tick.js:63:19) 

Я думаю, что проблема в том, что exitHandler является асинхронным, но я не знаю, как решить эту проблему, потому что webDriver.quit () также является асинхронным. Итак, как мне выйти из веб-драйвера (и окна Firefox), когда сервер выключен?