net.createServer(function(socket){
socket.on('data',function(id){
getUserDetails(function(){console.log(id)});
});
});
function getUserDetails(next){
next();
}
net.createServer(function(socket){
socket.on('data',function(id){
getUserDetails(function(){console.log(id)});
});
});
function getUserDetails(next){
console.log(id);
next();
}
第一个代码记录id,其中第二个代码给出错误。我知道getUserDetails无法访问id,但是传递给getUserDetails的回调如何才能访问id?
答案 0 :(得分:1)
id
是一个作用于socket.on('data')
事件回调函数的变量。
getUserDetails
方法不在该范围内 - 因此无法访问此变量。
您作为getUserDetails
参数发送的函数在id
变量所在的回调函数范围内声明,因此可以访问它。