export const fetchIataViaGeo = createAsyncThunk(
'iata/fetchIataViaGeo',
async () => {
const error = () => {
alert('Sorry, we could not find your location. Please enter manually.');
};
const succuess = async (position) => {
const lat = position.coords.latitude;
const lng = position.coords.longitude;
const res = await axios.get(
`https://airlabs.co/api/v9/nearby?lat=${lat}&lng=${lng}&distance=45&api_key=...`
);
console.log(res.data.response.airports);
return await res.data.response.airports;
};
navigator.geolocation.getCurrentPosition(succuess, error);
}
);
字符串
这可能是因为我把它还错了地方,但我不知道哪里需要它。当我尝试它没有地理定位请求,它工作得很好
1条答案
按热度按时间xsuvu9jc1#
在
payloadCreator
回调函数中没有返回任何内容(createAsyncThunk
的第二个参数是createAsyncThunk
的函数:请参阅以下文档:https://redux-toolkit.js.org/api/createAsyncThunk#overview但是,您不能简单地返回
navigator.geolocation.getCurrentPosition
的结果,因为它总是返回undefined
:https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/getCurrentPosition#return_value您需要的是返回
Promise
的getCurrentPosition。请参见https://whatwebcando.today/articles/use-geolocation-api-promises/你会想要看起来像这样的东西:
字符串
你可以使用如下:
型