一个小例子浅析·Node.js中callback作为Closure·
发布于 9 年前 作者 LanceHBZhang 3781 次浏览 最后一次编辑是 8 年前 来自 分享

最近在开发一个应用时,碰到一些由于闭包引发的一些问题。现将代码简化,从调试器角度细看, Node.js中的callback如何做为Closure完成回调工作。 简化后的代码如下图所示。图中所用调试器是WebStorm。整个代码一共包含2个callback,分别为http.createServer的callback以及mysql.query的callback。 JS-callback.png

参考我的另一篇Node.js架构的帖子 一个小例子浅析Node.JS架构 ,会发现其实每一个callback作为一个闭包被V8重新调用。

也正因为用闭包的方式重新调用callback,使得在这些callback 函数中依旧能像镜像恢复一样恢复记忆,访问这些callback被设置时的变量。 JS-callback-2.png

回到顶部