我有一些这样的代码:
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
?或者换句话说,我如何将参数传递给闭包?