From ea4b62c458c8c3cafac4063d20b6e771ce610355 Mon Sep 17 00:00:00 2001 From: John Knox Date: Mon, 16 Sep 2019 09:46:30 -0700 Subject: [PATCH] Fix unhandled promise rejections at startup Summary: I like the idea, but these reject by default promises cause the global rejection handler to fire at startup, looking like things are broken. Reviewed By: danielbuechele Differential Revision: D17397614 fbshipit-source-id: 88601d6c65cb79d61efc27c34a4b7f2dd8716d39 --- src/server.tsx | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/server.tsx b/src/server.tsx index 2c7984a6e..6e75c93ec 100644 --- a/src/server.tsx +++ b/src/server.tsx @@ -41,13 +41,13 @@ declare interface Server { class Server extends EventEmitter { connections: Map; - secureServer: Promise>; - insecureServer: Promise>; + secureServer: Promise> | null; + insecureServer: Promise> | null; certificateProvider: CertificateProvider; connectionTracker: ConnectionTracker; logger: Logger; store: Store; - initialisePromise: Promise; + initialisePromise: Promise | null; constructor(logger: Logger, store: Store) { super(); @@ -55,12 +55,9 @@ class Server extends EventEmitter { this.connections = new Map(); this.certificateProvider = new CertificateProvider(this, logger); this.connectionTracker = new ConnectionTracker(logger); - // eslint-disable-next-line prefer-promise-reject-errors - this.secureServer = Promise.reject(); - // eslint-disable-next-line prefer-promise-reject-errors - this.insecureServer = Promise.reject(); - // eslint-disable-next-line prefer-promise-reject-errors - this.initialisePromise = Promise.reject(); + this.secureServer = null; + this.insecureServer = null; + this.initialisePromise = null; this.store = store; } @@ -280,8 +277,9 @@ class Server extends EventEmitter { if (this.initialisePromise) { return this.initialisePromise.then(_ => { return Promise.all([ - this.secureServer.then(server => server.stop()), - this.insecureServer.then(server => server.stop()), + this.secureServer && this.secureServer.then(server => server.stop()), + this.insecureServer && + this.insecureServer.then(server => server.stop()), ]).then(() => undefined); }); }