nodejs底层机制, 回调函数,一直没有返回会怎么样?

比如

写法一:
`
function fn1(a,b, callback) {

......
..... 

if((a + b) > 100 ) {
    callback('Yes');
}

}

`

写法二:
`
function fn2(a,b, callback) {

......
..... 

if((a + b) > 100 ) {
    callback('Yes');
}
else {
    callback('No');
}

}

`

//调用场景
`
fn1(1,2,function(res) {

........ 

});
`

这二种有差异吗? 

方法一会不会影响nodejs 底层事件调用性能, 上面的场景,回调就没有被用,这函数(指针)是不是一直在队列里,资源得不到释放?
比如方法一写法,大量不回调场景在程序中,性能有影响吗?

我不太了解nodejs 底事机制,所以发出个疑问,请知道的指教!

阅读 1.7k
2 个回答

你想问对 GC 的影响?

没影响。

没影响,退出执行环境后,如果变量没被引用,其占用的内存会在下一次 GC 中被回收。
如果你看过《寻梦环游记》的话,就很好比喻:一个人的人死去相当于退出了执行环境,如果人间(现存的其他执行环境)没人记得这个已死之人(保留变量引用)的话,这个已死之人就会从阴间消失(内存被回收),即使他有什么未了的心愿(函数还没有执行)。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题