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

View File

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