1
フォーク!Fetch APIの値を変数に渡すにはどうすればよいですか?
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あなたはあなたが約束の結果処理するために.then
を使用しなければならないコード
あなたは非同期メソッドから返すことはできませんが。 – adeneo
ありがとう@adeneo!代わりに、私は同じ仕事を達成するために何をすることができますか? – vcamargo
コールバック内でのみ結果を使うことができます。この場合、 'then'ハンドラ – adeneo