Чтобы решить эту проблему, я вызвал функцию showWeather () внутри функции success () и передал long и lat в качестве аргументов. Затем я перенес их в свою функцию getWeather ().
По пути я установил много консольных журналов для отслеживания стека вызовов каждого тела функции.
function success(pos) {
var crd = pos.coords;
const long = crd.longitude;
const lat = crd.latitude;
showWeather(long,lat);
}
navigator.geolocation.getCurrentPosition(success, error, options);
async function getWeather(long, lat) {
const res = await fetch(`https://fcc-weather-api.glitch.me/api/current?lat=${lat}&lon=${long}`);
const data = await res.json();
return data;
}
async function showWeather(long, lat) {
const weather = await getWeather(long, lat);
if (weather) {
tempContainer.innerHTML = `${Math.round(weather.main.temp)}°C`;
tempLocationContainer.innerHTML = weather.name;
}
};