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(); + }); }); };