Como evitar o acesso variável mutável do fechamento
Eu tenho um código como este:
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]];
...
});
}
E eu recebi um aviso de que usartmp_id
no encerramento pode causar problema porque é uma variável mutável.
Como eu poderia evitar isso? Quero dizer, como eu poderia enviar uma variável imutável para retorno de chamada desde que este é um loop for e eu não posso mudar o código dezlib.gzip
? Ou em outras palavras, como eu poderia passar um argumento para um fechamento?