Desidero aggiungere alcuni parametri aggiuntivi alla chiamata dell'API geocoder di Google poiché sto eseguendolo in un ciclo, ma non sono sicuro di come aggiungere i parametri di chiusura alla loro funzione anonima che ha già parametri predefiniti che vengono passati dalla chiamata all'API.Collegamento di parametri con chiusure javascript ai parametri predefiniti nelle funzioni anonime
Ad esempio:
for(var i = 0; i < 5; i++) {
geocoder.geocode({'address': address}, function(results, status) {
// Geocoder stuff here
});
}
voglio essere in grado di utilizzare il valore dei nel geocoder.geocode passato() funzione anonima, ma se avessi una chiusura utilizzando }(i));
sulla linea 4 per esempio, che sostituirebbe il primo parametro che interromperà il geocoder.
C'è un modo per utilizzare le chiusure o passare il valore di i alla funzione anonima?
Effettivamente quello che voglio fare è:
geocoder.geocode({'address': address}, function(results, status, i) {
alert(i); // 0, 1, 2, 3, 4
}(i));
ma lavorando :-)
Una soluzione ancora più semplice! Avrei dovuto postare più presto – WheresWardy
Stavo per dire che era confusionario avere 'i' nello scope esterno e nell'ambito interno, ma vedo che l'hai risolto ora così ti lascerò sfuggire :) – Skilldrick
Suggerisco che questo esempio è il migliore perché gli altri (sono più semplici) non funzionano nel mio caso: l'i all'interno della funzione di callback geocoder è sempre l'ultimo del ciclo. Immagino, dipende dalla natura asincrona del browser. Ma questa risposta ha funzionato perfettamente! +1! – Igor