Ich verwende eine Funktion, die Axios verwendet. Ich möchte in der Lage sein, diese Funktion aufzurufen und das Array zu erhalten, das ich zurückgeben möchte. Leider komme ich unbestimmt zurück. Ich weiß nicht, ob ich es einfach falsch zurückgebe oder ob es damit zu tun hat, dass Axios sich Zeit nimmt, einen Api-Anruf zu tätigen.Axios-Funktion gibt keine Werte mit js zurück
Hier ist mein Code:
const filterItemsByRadius = (userRadius, items) => {
axios
.get('http://ip-api.com/json')
.then(response => {
const data = [];
const { lat, lon } = response.data;
items.map(item => {
let itemGeolocation;
if (item.geolocation) {
itemGeolocation = item.geolocation.coords;
}
const currentLocation = {
latitude: lat,
longitude: lon,
};
const distanceArr = geolib.orderByDistance(currentLocation, [itemGeolocation]);
const miles = (distanceArr[0].distance/1609.34).toFixed(2);
if (miles <= userRadius) {
data.push(item);
return data;
}
});
})
.catch(err => {
console.log(err);
});
};
Wenn ich diese Funktion wie so rufen und melden Sie es aus:
console.log(filterItemsByRadius(userRadius, items));
Dann werde ich nicht definiert bekommen. Ich habe die Daten, die ich zurückgebe, ausgeloggt und es ist ein Array mit den richtigen Informationen, so dass ich etwas falsch machen muss, wie ich es zurückgebe.