From c9f736d33faacac01b30ce86c70f70e5ec169eac Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Wed, 19 Jul 2017 00:21:35 +0300 Subject: [PATCH] net/http: correctly reject promise return by listen() --- lib/http/base.js | 6 +++--- lib/net/tcp.js | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/http/base.js b/lib/http/base.js index a997263a..889c6148 100644 --- a/lib/http/base.js +++ b/lib/http/base.js @@ -812,10 +812,10 @@ HTTPBase.prototype.address = function address() { HTTPBase.prototype.listen = function listen(port, host) { return new Promise((resolve, reject) => { let addr; - this.server.listen(port, host, (err) => { - if (err) - return reject(err); + this.server.once('error', reject) + + this.server.listen(port, host, () => { addr = this.address(); this.emit('listening', addr); diff --git a/lib/net/tcp.js b/lib/net/tcp.js index 5daec677..37b47c37 100644 --- a/lib/net/tcp.js +++ b/lib/net/tcp.js @@ -41,7 +41,8 @@ tcp.createServer = function createServer() { ee.listen = function listen(port, host) { return new Promise((resolve, reject) => { - server.listen(port, host, wrap(resolve, reject)); + server.once('error', reject) + server.listen(port, host, resolve); }); };