gpt4 book ai didi

javascript - .然后使用 cordovaGeolocation 时不等待返回函数

转载 作者:行者123 更新时间:2023-12-02 13:52:20 24 4
gpt4 key购买 nike

为了学习 Javascript 和 Ionic,我再次转向 StackOverFlow。

我创建了以下工厂函数:

.factory('GeoService', function($ionicPlatform, $cordovaGeolocation) {

var positionOptions = {timeout: 10000, enableHighAccuracy: true};

return {
getPosition: function() {
return $ionicPlatform.ready()
.then(function() {
return $cordovaGeolocation.getCurrentPosition(positionOptions);
})
}
};

});

获取GPS坐标。要调用此函数,我执行以下操作:

        GeoService.getPosition()
.then(function(position) {
//Obtain geolocation information
console.dir(position.coords)

return position.coords;
}, function(err) {
console.log('getCurrentPosition error: ' + err);
}).then(function(data) {
console.dir(data)

//make http request with the information
})

我遇到的问题是第二个 .then 在尝试通过 http 发送信息之前没有等待 GeoService.getPosition() 解决。我怀疑我需要使用类似于 q.all 的东西,但我只是不确定。

非常感谢

最佳答案

你应该定义自己的 promise

.factory('GeoService', function($q,$ionicPlatform, $cordovaGeolocation) {


function getPosition(){

return $q(function(resolve, reject) {
var positionOptions = {timeout: 10000, enableHighAccuracy: true};
$cordovaGeolocation.getCurrentPosition(positionOptions)
.then(function(position){
resolve(position);
}, function(error){
reject(error);
});
})

}
return {
getPosition: getPosition
};

});

关于javascript - .然后使用 cordovaGeolocation 时不等待返回函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40928143/

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