From 906a6bf13a6ef7ff4ebc46f3b6a8609722bf1a5d Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Sun, 23 Jul 2017 08:18:06 -0700 Subject: [PATCH] http/tcp: remove reject listener on success. --- lib/http/base.js | 8 +++----- lib/net/tcp.js | 7 +++++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/http/base.js b/lib/http/base.js index d43b8d13..01ef851d 100644 --- a/lib/http/base.js +++ b/lib/http/base.js @@ -811,15 +811,13 @@ HTTPBase.prototype.address = function address() { HTTPBase.prototype.listen = function listen(port, host) { return new Promise((resolve, reject) => { - let addr; - - this.server.once('error', reject) - + this.server.once('error', reject); this.server.listen(port, host, () => { - addr = this.address(); + let addr = this.address(); this.emit('listening', addr); + this.server.removeListener('error', reject); resolve(addr); }); }); diff --git a/lib/net/tcp.js b/lib/net/tcp.js index 37b47c37..f2c1b558 100644 --- a/lib/net/tcp.js +++ b/lib/net/tcp.js @@ -41,8 +41,11 @@ tcp.createServer = function createServer() { ee.listen = function listen(port, host) { return new Promise((resolve, reject) => { - server.once('error', reject) - server.listen(port, host, resolve); + server.once('error', reject); + server.listen(port, host, () => { + server.removeListener('error', reject); + resolve(); + }); }); };