我希望能够在服务器开始侦听端口并获取请求之前启动异步任务, 我的解决方法是从onListening函数调用我的任务,当我的任务完成后,我将端口绑定到地址 - 但是这种解决方法很难看..
function onListening() {
var addr = server.address();
var bind;
// Following service gets the default plugins from the yamls and stores them in the DB.
defaultOperationsService.getOOTBOperations().then(function success() {
logger.info('Done getting default plugins operations!');
}, function err(err) {
logger.error('Error while trying to get operations' + err);
}).done(function done() {
bind = typeof addr === 'string' ? 'pipe ' + addr : 'port ' + addr.port;
logger.debug('Listening on ' + bind);
});
}
答案 0 :(得分:4)
我介绍了一种更好的方式,可能是最好的方法,完成后调用server.listen(port):
defaultOperationsService.getOOTBOperations().then(function success(){
logger.info('Done getting default plugins operations!');
}, function err(err){
logger.error('Error while trying to get operations' + err);
}).done(function done(){
server.listen(port);
});