CNode

一个小例子浅析·Node.js中callback作为Closure·

分享
LLanceHBZhang发布于11 年前最后回复11 年前0 回复4194 浏览0 收藏

最近在开发一个应用时,碰到一些由于闭包引发的一些问题。现将代码简化,从调试器角度细看, 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

查看回复

回复 (0)

暂无回复,成为第一个参与讨论的人。
参与回复
登录后即可参与回复。登录