返回承诺的输出

时间:2014-09-10 12:31:29

标签: javascript angularjs promise angular-promise

我正在尝试返回承诺的输出。但是,我只是得到了实际的承诺,而不是价值。

我做错了什么?

这是我的代码:

$rootScope.distance = function(lon1, lat1) {

    var deferred = $q.defer();

    $cordovaGeolocation.getCurrentPosition()
        .then(function (position) {
            deferred.resolve(position);
        }, function(err) {

        });
    return deferred.promise;


}

...和结果

enter image description here

1 个答案:

答案 0 :(得分:0)

由于promise是异步的,因此在调用promise returns函数后无法直接获取其值(同步)。你可以这样做

$rootScope.updateDistance = function(lon1, lat1) {
    $cordovaGeolocation.getCurrentPosition()
        .then(function (position) {
            $rootScope.distance = position;
        });
}