У меня проблема с тем, что асинхронная функция не возвращается при работе на Android, тогда как она нормально работает при запуске на iOS.
Это функция:
_getLocationAsync = async () => {
let {status} = await Permissions.askAsync(Permissions.LOCATION);
if (status !== 'granted') {
this.setState({
errorMessage: 'Permission to access location was denied',
});
}
let location = await Location.getCurrentPositionAsync({});
this.setState({location});
return location;
};
и я использую его в другой функции здесь:
async fetchMarkers(settings ){
console.log("fetchMarkers");
// console.log(settings);
this.setState({listLoading: true});
let location = await this._getLocationAsync();
console.log("location is ", location);
....
....
}
Эта строка не возвращается в Android, но возвращается в IOS. В Android я попытался записать значение местоположения непосредственно перед возвратом в _getLocationAsync, и он записывает определенный и правильный объект, мне интересно, почему он не может вернуть его тогда:
let location = await Location.getCurrentPositionAsync({});
Я использую React Native 0.53