Я пытаюсь установить, а затем получить переменную хранения сеанса, которая возвращается из API, который я использую. API возвращает правильные значения, и эти значения доступны в функции, которая возвращает результат и его состояние, но не за пределами запроса. Запрос:
var geom;
var latArray = new Array();
var longArray = new Array();
function getLatLong(placeIdent) {
service = new google.maps.places.PlacesService(document.createElement('div'));
request = {placeId: ""+placeIdent+""};
service.getDetails(request, function(result, status) {
if (status !== google.maps.places.PlacesServiceStatus.OK) {
console.log(status);
} else {
writeLatLongData(result);
while(geom != "") {
lat = geom.lat();
latArray.push(lat);
long = geom.lng();
latArray.push(long);
console.log(geom);
console.log(lat);
console.log(long);
timeout();
}
}
}
)
}
function writeLatLongData(result) {
geom = result.geometry.location;
return geom;
}
Я знаю, что эта функция является источником проблемы, но если она мне нужна, я пытаюсь получить доступ к сохраненным значениям, например:
function timeoutOne() {
setTimeout(function(){
getGeometry(placeArray);
}, 1000);
}
timeoutOne();
function getGeometry(placeArray) {
for (var j=0; j < nightsArray.length; j++) {
getLatLong(placeArray[j]);
}
}
Я почти уверен, что это проблема асинхронности, но я не так хорошо знаком с Async / await, и все, что я пробовал, просто возвращает пустое значение, когда обещание разрешено (возможно, потому, что данные недоступны вне функция запроса, все еще).
У кого-нибудь есть предложения?