我正在尝试了解在传递回调函数时参数是如何分配的。例如,在mysql npm包Connection.js中,.connect方法使用err参数传递回调。我试图了解如何初始化和分配.connect回调函数错误参数的一步一步细节。
mysql.connect(function(err) {
if (err) {
console.error('error connecting: ' + err.stack);
}
console.log('connected as id ' + connection.threadId);
});
我对连接通话的理解是这样的。
首先,调用mysql.connect,它是对
的引用Connection.prototype.connect = function connect(options, callback)
在\ node_modules \ mysql \ lib \ Connection.js
中然后,connect函数内的代码执行并以行
结束this._protocol.handshake(options, bindToCurrentDomain(callback));
然后将控制权传递回匿名回调函数(err),该函数现在可以引用错误的对象,因为它现在已被分配。
这是对的吗?
如果没有,任何对此的见解都将受到赞赏。特别是,我正在努力理解
1)在执行.connect调用以及它如何执行时,一步一步地发生了什么,然后将控制权交给匿名回调。
2)匿名回调如何访问指定的错误参数。
3)#2的答案是否真的是模式(实质上是什么,而不是确切的实现细节),如何使用参数“自动分配”回调? (例如,express.Router()中的req和res params。route(function(req,res)...)
由于