node执行完所有代码以后就会退出(部分监听服务除外),如果不希望node立刻退出,只要在任意位置加上一行
setInterval(function(){},9999999);//时间设置多少都没有关系,这只影响这个空回调函数的调用频率
node就不会退出了(除非出错
如果你希望即使是出错了,也不让Node退出,那么就需要加入以下事件监听器
process.on('uncaughtException',(err,origin)=>{//捕捉uncaughtException console.error('[uncaughtException]',err,origin); }); process.on('unhandledRejection',(err,promise)=>{//捕捉unhandledRejection console.error('[unhandledRejection]',err); });
加入这两个监听器之后,node遇到任何未捕捉的错误,都会交给第一个监听器处理,碰到任何未catch的异常Promise,都会交给第二个监听器处理,你可以在里面做些事情,比如打个日志之类的。
==========更新log===========
- 2021/11/16: 加入出错时不退出的方法
本文发布于 https://luojia.me
本站文章未经文下加注授权不得拷贝发布。
可以写个函数:P
alwaysSleep(1000);
function alwaysSleep(timeout) {
setTimeout(alwaysSleep, timeout, timeout);
}
可以用来做什么。。。
我是在用node的http模块发request请求的时候发现node没等回调函数调用就退出了