mam trochę kodu:Jak uniknąć dostępu zmiennej zmienny z zamknięciem
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]];
...
});
}
I dostał ostrzeżenie, że za pomocą tmp_id
w zamknięciu może powodować problemy, ponieważ jest to zmienna zmienny.
Jak mogę tego uniknąć? Mam na myśli, jak mogę wysłać niezmienną zmienną do wywołania zwrotnego, ponieważ jest to pętla for i nie mogę zmienić kodu zlib.gzip
? Lub innymi słowy, jak mógłbym przekazać argument do zamknięcia?
Jak można uniknąć czego? Twoje pytanie nie jest jasne. Proszę o wiele więcej szczegółów, z czym potrzebujesz pomocy. – jfriend00
Zacząłem pisać odpowiedź ... ale staje się jasne, że to może użyć refaktora :(Gzipujesz to samo 'message.receiver.length' razy. Opublikuj całą rzecz? – brianreavis