Я новичок в JS и сейчас погружаюсь в асинхронные функции и обещания. Имея некоторый опыт работы с Python и R, это для меня совершенно ново. Я прочитал много разных веб-сайтов, разделов и решений для возврата значения в асинхронной функции, но не могу заставить его работать. Ниже я свел это к упрощению функции, которую я написал, предназначенной для получения информации от Google о местоположении и ее возврата. Просто как тот. Я последовал совету в Интернете и попытался переписать следующий совет от Бенджамина Грюнбаума на Как мне вернуть ответ от асинхронного вызова? .
async function foo(){
var data = await fetch("/echo/json"); // notice the await
// code here only executes _after_ the request is done
return data.json(); // data is defined
}
Пожалуйста см. мой собственный код ниже. Мне кажется, что я делаю то же самое, но все равно записывается как Promise {<pending>}
... Что я делаю не так? data
должен быть массивом. Даже если я заменю только свой URL-адрес googleapi и использую fetch()
и .json()
, он регистрируется как Promise {<pending>}
.
async function foo() {
var data = await axios.get("https://maps.googleapis.com/maps/api/geocode/json?address=Amsterdam&key=API_KEY");
return data;
}
console.log(foo())