gpt4 book ai didi

javascript - axios函数不使用js返回任何值

转载 作者:行者123 更新时间:2023-12-01 02:53:12 25 4
gpt4 key购买 nike

我正在使用一个使用 axios 的函数。我希望能够调用这个函数并获取我试图返回的数组。不幸的是我回来时未定义。我不知道我是否只是返回错误,或者是否与 axios 花费时间进行 api 调用有关。

这是我的代码:

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);
});
};

如果我像这样调用这个函数并将其注销:

console.log(filterItemsByRadius(userRadius, items));

然后我就会变得未定义。我已经注销了我返回的数据,它是一个包含正确信息的数组,因此我返回它的方式一定是出了问题。

最佳答案

该函数返回一个 promise 。你可以这样调用它:

filterItemsByRadius(userRadius, items).then(resp => {
console.log(resp);
});

您现在可以在控制台中看到结果。

关于javascript - axios函数不使用js返回任何值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46851295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com