Как получить доступ к глобальной переменной в замыкании? (Javascript) - PullRequest
1 голос
/ 04 августа 2011
            var events = <?php echo $sf_data->getRaw('jsonData'); ?>;//some perfecly fine json
            var locations = new Array();
            var geocoder = new google.maps.Geocoder();
            $(events).each(function(i,e){
                geocoder.geocode({address: e.place},function(results,statusCode){
                    locations[e.id] = results[0].geometry.location;
                })
            })
            alert(locations.length);

Хорошо, вопрос прост. Как изменить массив location внутри замыкания? Предупреждение показывает 0 .

1 Ответ

4 голосов
/ 04 августа 2011

Предупреждение показывает 0, потому что вы изменяете locations асинхронно.Анонимная функция, в которой вы изменяете locations, будет вызываться , позже , тогда вы будете показывать предупреждение.

...