return `$resource` 如何承诺响应?

How return `$resource` promise response?

我需要多个区域的用户详细信息。我尝试使用通用函数 return 详细信息。但我得到的结果是 undefined。我明白,我需要使用 $differed 来获得结果。但是我对我目前的情况没有任何想法。

有人帮我吗?

这是我的函数:

$scope.currentUserInfo = function () {

        var userDetails;

        server.getProfile.get().$promise.then(function ( response ) {

            if( response.Message.toUpperCase().indexOf('SUCCESS') != -1) {

                return  userDetails = response;

            }

            return "Not able to get the user details this time"

        })

        return userDetails;

    }

$scope.currentUser =  $scope.currentUserInfo();
console.log( $scope.currentUser ) //undefined.



var function1 = function () {

    $scope.currentUserInfo(); //once user details available do further

     $scope.age = $scope.currentUser.age;

}

var function2 = function () {

    $scope.currentUserInfo(); //once user details available do further

    $scope.name = $scope.currentUser.name;

}

server.getProfile.get() 是一个异步调用。 即使 server.getProfile.get() 调用尚未完成,$scope.currentUserInfo 函数中的 return userDetails; 行也会被执行。 试试这个:

$scope.currentUserInfo = function () {

    server.getProfile.get().$promise.then(function ( response ) {

        if( response.Message.toUpperCase().indexOf('SUCCESS') != -1) {

            $scope.currentUser = response;

        }

        $scope.message =  "Not able to get the user details this time";


    })

}

$scope.currentUser 将在 ajax 调用完成后填充。我假设您在 html 绑定中使用 $scope.currentUser,因此当值更改时,它会自动反映在您的视图中