Я пытаюсь извлечь данные из вызова Axios в Javascript. Я вижу, что данные успешно вызываются, если я console.log (), находясь внутри этого блока
Вот ссылка на снимок экрана console.log (), если он находится внутри вызова axios. https://imgur.com/a/ZLXnE2n
Эти данные верны, но я не могу получить к ним доступ вне вызова Axios.
const response = await axios
.get(url, config)
.then(function(response) {
data = response.data;
console.log(data)
})
Однако я не могу ничего сделать с данными вне функции getRide_Uber. Как извлечь объект ответа для использования в других частях моего кода?
const axios = require("axios");
// Use the Uber API to estimate the cost between two
// locations specified via latitude and longitude coordinates.
getRide_Uber = async (addressOrigin, addressDestination) => {
let origin = await geocodeAddress(addressOrigin);
let destination = await geocodeAddress(addressDestination);
const url = "https://api.uber.com/v1.2/estimates/price";
const config = {
headers: {
Authorization: `Token ${process.env.UBER_SERVER_TOKEN}`
},
params: {
start_latitude: origin.lat,
start_longitude: origin.lon,
end_latitude: destination.lat,
end_longitude: destination.lon
}
};
const response = await axios
.get(url, config)
.then(function(response) {
data = response.data;
return data;
})
.catch(function(error) {
console.log(error);
});
return response;
};
// Initial code
// const rideData = getRide_Uber("Arlington Texas", "Fort Worth Texas");
// const ridePrices = rideData.prices;
// console.log(ridePrices);
// Code suggestion by @mralanlee
const a = (async() => {
const result = await getRide_Uber(start, dest);
return result;
})();
console.log(a); // Console just says <pending>
const prices = a.prices // undefined
Пожалуйста, дайте мне знать, если что-то потребует разъяснений, и я буду рад объяснить. Спасибо!