我正在创建一个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);
});
因此每次运行此代码时都应如此 (a)获取过去的位置(b)添加当前位置和(c)将其存储回云中。但每次我运行程序时,'locations'数组都会保持大小[1],也就是没有任何东西得到/设置!我已经看过其他一些关于这个论点的正确性的帖子,但我已经检查了我的,我相信它们是合理的。
发生了什么事???任何人都可以阐明如何使这个代码工作?非常感谢我的代码英雄:D