2017-03-21 4 views
0

Ich bin eine Express.js App zu schaffen und zum Zwecke der Prüfung i mein Server Start "promisified":Wie bestätige ich, dass mein http-Server ordnungsgemäß geschlossen wurde?

startHttpServer(): Promise<any> { 
    let self = this; 
    return new Promise(function(resolve, reject) { 
     logInfo('Starting http server...'); 
     self.httpServer = self.app.listen(self.options.port,() => { 
      logInfo('Listening on port %O', self.options.port); 
      resolve(); 
     }).on('error',() => { 
      logError('Failed to start the server on port %O', self.options.port); 
      reject(); 
     }); 
    }); 
} 

Wie mache ich "promisify" Verbindung schließen?

Antwort

1

Wie mache ich "promisify" meine Verbindung schließen?

Sie zum close Ereignisse auf dem zugrunde liegenden HTTP-Server von listen zurück hören: https://nodejs.org/api/http.html#http_event_close

Mehr

HINWEIS: Ein Versprechen abgelehnt wird nur gelöst oder einmal, so dass Sie shouldn‘ t resolve auf hören Sie mehr.

Wenn Sie sowohl hören als auch schließen möchten und andere stattdessen messbar verwenden möchten.

+0

wirklich nette Beratung! danke –

+1

Der '.listen()' Rückruf wird nur einmal genannt, also funktioniert es tadellos mit einem Versprechen. Vermutlich würde das gleiche für ein "nahes" Ereignis gelten. Versprechungen funktionieren für Ereignisse, die nur einmal vorkommen. – jfriend00

+0

Dies trifft nicht auf Knotencluster zu. Listen können mehrmals aufgerufen werden. –

Verwandte Themen