Catch sync errors while starting HTTP server

Reviewed By: lblasa

Differential Revision: D50636260

fbshipit-source-id: f23fb2005c779b87122ae34bfdd9371d8bdec8b4
This commit is contained in:
Andrey Goncharov
2023-10-25 04:52:00 -07:00
committed by Facebook GitHub Bot
parent 97f01d0057
commit 8c5078dc08
2 changed files with 73 additions and 65 deletions

View File

@@ -47,6 +47,7 @@ class ServerRSocket extends ServerWebSocketBase {
start(port: number, sslConfig?: SecureServerConfig): Promise<number> { start(port: number, sslConfig?: SecureServerConfig): Promise<number> {
const self = this; const self = this;
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
try {
// eslint-disable-next-line prefer-const // eslint-disable-next-line prefer-const
let rawServer: RSocketServer<any, any> | undefined; let rawServer: RSocketServer<any, any> | undefined;
const serverFactory = (onConnect: (socket: Socket) => void) => { const serverFactory = (onConnect: (socket: Socket) => void) => {
@@ -78,6 +79,9 @@ class ServerRSocket extends ServerWebSocketBase {
}), }),
}); });
rawServer.start(); rawServer.start();
} catch (e) {
reject(e);
}
}); });
} }

View File

@@ -49,6 +49,7 @@ class ServerWebSocket extends ServerWebSocketBase {
async start(port: number, sslConfig?: SecureServerConfig): Promise<number> { async start(port: number, sslConfig?: SecureServerConfig): Promise<number> {
const assignedPort = await new Promise<number>((resolve, reject) => { const assignedPort = await new Promise<number>((resolve, reject) => {
try {
const server = sslConfig const server = sslConfig
? createHttpsServer(sslConfig) ? createHttpsServer(sslConfig)
: createHttpServer(); : createHttpServer();
@@ -89,6 +90,9 @@ class ServerWebSocket extends ServerWebSocketBase {
resolve((server.address() as AddressInfo).port); resolve((server.address() as AddressInfo).port);
}); });
} catch (e) {
reject(e);
}
}); });
assertNotNull(this.wsServer); assertNotNull(this.wsServer);