我正在尝试返回承诺的输出。但是,我只是得到了实际的承诺,而不是价值。
我做错了什么?
这是我的代码:
$rootScope.distance = function(lon1, lat1) {
var deferred = $q.defer();
$cordovaGeolocation.getCurrentPosition()
.then(function (position) {
deferred.resolve(position);
}, function(err) {
});
return deferred.promise;
}
...和结果
答案 0 :(得分:0)
由于promise是异步的,因此在调用promise returns函数后无法直接获取其值(同步)。你可以这样做
$rootScope.updateDistance = function(lon1, lat1) {
$cordovaGeolocation.getCurrentPosition()
.then(function (position) {
$rootScope.distance = position;
});
}