私は2つのAPIを使用してウェブサイトを構築しています。バニラJavaScript ES6をAjaxが終了するまで待ちます
私のGoogleマップinitが応答を返すのを待つようにしています。
マイコード:
let Url = "https://ipinfo.io/json";
async function getInfo(url) {
const response = await fetch(url);
// console.log(response);
const data = await response.json();
return data;
}
let ipInfo = getInfo(Url);
console.log(ipInfo);
//Google maps
function initMap() {
var place = {
lat: -25.363,
lng: 131.044
};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: place
});
var marker = new google.maps.Marker({
position: place,
map: map
});
}
今どのように私はinitMap()が終了する)(GETINFO待つ作るのですか?私は
let ipInfo = getInfo(Url).then(function(){initMap()...Rest of code});
ような何かをしようとしていた。しかし、それはあなたがasync
とawait
を使用しているので、あなたが行うことができるはず
なぜ待ちますか?要求が行われている間にマップを初期化し、受信後に場所を更新します。 – charlietfl
まったく同じことです。ここに来てからデータを送信するように指示するにはどうすればよいですか?私が別のことをすれば、それはちょうど未定義になるでしょう – alex3wielki
initMapの内部でリクエストを作成し、地図オブジェクトに参照を保存します。また、ipinfoを使用して、ナビゲータを使用して現在の位置を取得するのと同じ精度ではない – charlietfl