chrome.storage.sync.set не работает

Я создаю расширение Chrome, которое собирает ваше географическое положение при нажатии на него - синхронизирует данные, чтобы в нем сохранялись последние 20 координат долготы и широты, в которых вы находились. Но chrome.storage.sync.set, похоже, не работает!

    var locations = [];
//get past locations and put them into 'locations' array
    chrome.storage.sync.get("locations", function(data){
        console.log("Getting Locations");
        var index;
        for (index = 0; index < data.length; ++index) {
            locations.unshift(data);
        }
    });
//add current location to 'locations' array
    navigator.geolocation.getCurrentPosition(function(position) 
    {
        initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
    });
    locations.unshift(initialLocation);

//sync locations to cloud
    var obj = {};
    obj["locations"] = locations;
    chrome.storage.sync.set(obj, function() {
        console.log("Location Saved");
        console.log(locations);
    });

Поэтому каждый раз, когда я запускаю этот код - он должен (а) проходить мимо местоположений (б) добавлять текущее местоположение и (в) сохранять его обратно в облаке. Но каждый раз, когда я запускаю программу, массив 'location' остается размером [1], иначе ничего не получится получить / установить! Я просмотрел несколько других постов по этому поводу, касающихся правильности аргументов, но я проверил мои и считаю, что они обоснованные.

Что происходит?!? Кто-нибудь может пролить свет на то, как заставить этот код работать? Большое спасибо моим Героям Кодекса:D

1 ответ

chrome.storage.sync.get является асинхронным, как вы можете увидеть здесь

Итак, когда вы пытаетесь сохранить результат в locations переменная, выполнение метода не завершено.

chrome.storage.sync.get('locations', function(data){
    console.log("Getting Locations");
    console.log(data.locations); // The locations object.
    });

Пожалуйста, обратитесь к этому сообщению.

Другие вопросы по тегам