Есть функция:
async function getLat() {
let lat = await geocoder.geocode(cityName, (err, data) => {
lat = data.results[0].geometry.location.lat;
return lat;
}, { key: GOOGLE_API });
}
console.log(getLat());
Почему результат её работы Promise {<pending>}?
async– Grundy Apr 12 '21 at 18:57console.log(await getLat());– Grundy Apr 12 '21 at 19:01await geocoder.geocode— это ошибка, так какgeocoder.geocodeиспользует колбек, чтобы работать с результатом, а не возвращает промис. Еслиdataдоступно только внутри колбека, эти данные нельзя будет вернуть изgeocoder.geocodeбез дополнительных ухищрений. – vsemozhebuty Apr 12 '21 at 19:05console.log(await getLat());- получилundefined.Можно поподробнее о дополнительных ухищрениях?
– IRonny Apr 12 '21 at 19:06geocoder.geocode. Это ваша функция или библиотечная? К ней есть документация? – vsemozhebuty Apr 12 '21 at 19:08npmустановил пакет"geocoder": "0.2.3". Вообще, ф-я работает нормально если я не пытаюсь получать значения асинхронно. У меня есть глобальная ф-я которая срабатывает при нажатии на кнопку, после этого я хотел с помощью ф-и 'getLat()получать значениеlat` и это значение использовать в других функциях но так как переменная объявлена локально то в других функциях я не мог использовать её и пришел к решению в котором сам создам функцию и уже результат её работы буду использовать в других функциях: Так же мой вопрос о этой теме: https://ru.stackoverflow.com/q/1269373/389030 – IRonny Apr 12 '21 at 19:17