访问可变变量我有一些像这样的代码:如何避免关闭
for(var id=0; id < message.receiver.length; id++){
var tmp_id = id;
zlib.gzip(JSON.stringify(message.json), function(err, buffer){
...
pushStatusPool[message.receiver[tmp_id]] = null; // fix memory leak
delete pushStatusPool[message.receiver[tmp_id]];
...
});
}
而且我得到了一个警告,在封闭使用tmp_id
可能会导致问题,因为它是一个可变的变量。
我怎么能避免呢?我的意思是,我怎么能发送一个不变的变量回调,因为这是一个for循环,我不能改变的zlib.gzip
代码?换句话说,我怎么能把一个参数传递给一个闭包呢?
你怎么能避免什么?你的问题不清楚。请更具体地说明你想要的帮助。 – jfriend00
我开始写回应...但它变得非常清楚,这可以使用重构:(你正在gzip同样的东西'message.receiver.length'。张贴整个事情? – brianreavis