[英]server.listen callback not being called on error?
await new Promise((resolve, reject) => {
console.log('before');
server.listen(port, err => {
console.log('after');
if (err) {
reject(err);
}
resolve();
});
});
結果:
before
[ ✘ error ] Application encountered an unexpected error, exiting
2017-02-01T12:38:46.071Z /home/karlm/dev/node/project/src/index.js:21:19
[ ✘ error ] { Error: listen EADDRINUSE :::3030
at Object.exports._errnoException (util.js:1022:11)
at exports._exceptionWithHostPort (util.js:1045:20)
正如你可以看到before
被打印出來,而不是after
? 似乎崩潰了,沒有調用回調?
解決於:
await new Promise((resolve, reject) => {
server.listen(port, () => {
resolve();
}).on('error', (err) => {
reject(err);
});
});
該文件並沒有真正暗示我不得不使用on
。
可以像下面這樣使用
server.listen(9000, 'localhost', function() {
console.log('listening at http://%s:%s', 'localhost', 9000);
}).on('error', (e) => {
console.error(e.message);
throw e;
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.