AngularJS:从函数返回数据并将其分配给变量

Rag*_*hav 6 javascript asynchronous promise angularjs

我是angularjs的新手,我试图将数据从函数返回到另一个函数,并将其存储在变量中.

$scope.myNameValidate = function(name){
    $scope.friendsList = $scope.getAllFriends(name);
    console.log("data", $scope.friendsList);
}

$scope.getAllFriends = function(name){
    friendService.getAllfriends(name) 
    .then(function(data){
        //success
        console.log(data);
    }, function(err){
        //error
    })
}
Run Code Online (Sandbox Code Playgroud)

我想将所有对象存储在变量中,但结果是未定义的.

在控制台输出

数据未定义

[对象,对象,对象,对象,对象,对象]

RIY*_*HAN 7

你需要知道Angular的承诺.

此问题与异步操作有关.

您可以通过适当的then链接来修复它.你可以这样做.

$scope.myNameValidate = function(name) {
    $scope.getAllFriends(name)
        .then(function(data) {
            $scope.friendsList = data;
            console.log(data);
        }, function(err) {
            //error
        });

}

$scope.getAllFriends = function(name) {
    return friendService.getAllfriends(name)

}
Run Code Online (Sandbox Code Playgroud)