民间!
我尝试使用Google Maps API获取某个位置的纬度或经度。但我不知道如何使用Fetch API及其承诺返回值。
我可以用以下方式记录经度和纬度:
let url = 'https://maps.googleapis.com/maps/api/geocode/json?address=london'
fetch(url)
.then(response => response.json())
.then(data => {
console.log(data.results[0].geometry.location.lat)
console.log(data.results[0].geometry.location.lng)
})
输出:
51.5073509
0.1277583
但我想将这段代码封装在一个函数中:
function getLatitudeOrLongitude(url, LatitudeOrLongitude) {
fetch(url)
.then(response => response.json())
.then(data => {
if (LatitudeOrLongitude === 'latitude')
return data.results[0].geometry.location.lat
else
return data.results[0].geometry.location.lng
})
}
let latitudeOfLondon = getLatitudeOrLongitude(url, 'latitude')
console.log(latitudeOfLondon)
输出:
undefined
有人能指出我有什么问题吗?谢谢大家!
编辑:Here你可以找到一个带有代码
的JS Bin答案 0 :(得分:3)
您必须使用.then
来处理承诺的结果:
function getLatitudeOrLongitude(url, LatitudeOrLongitude) {
return fetch(url)
.then(response => response.json())
.then(data => {
if (LatitudeOrLongitude === 'latitude')
return data.results[0].geometry.location.lat
else
return data.results[0].geometry.location.lng
})
}
getLatitudeOrLongitude(url, 'latitude')
.then((latitudeOfLondon) => console.log(latitudeOfLondon));