gpt4 book ai didi

Javascript/API 空白已解决的 Promise 和请求中的非全局数据

转载 作者:行者123 更新时间:2023-12-03 01:08:30 25 4
gpt4 key购买 nike

我正在尝试设置然后获取从我正在使用的 API 返回的 session 存储变量。 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]);
}

}

我很确定这是一个异步问题,但我对异步/等待不太熟悉,并且当 promise 解决时我尝试过的所有内容都只是返回一个空值(可能是因为数据无法在外部访问)仍然是请求函数)。

有人有什么建议吗?

最佳答案

如果以下条件成立怎么办,

status !== google.maps.places.PlacesServiceStatus.OK

您的 google place api 调用失败(可能是因为您每 10 秒进行了太多调用),如果发生这种情况,则不会返回任何内容,从而使函数 getLatLong 返回未定义。

检查该函数是否至少返回一次内容。

关于Javascript/API 空白已解决的 Promise 和请求中的非全局数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52286665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com