callback after async forEach AngularJS

后端 未结 4 507
一生所求
一生所求 2020-12-07 21:24

How do I add a callback function after an async forEach Loop?

Here is some better context:

$scope.getAlbums = function(user, callback) {
            


        
4条回答
  •  误落风尘
    2020-12-07 22:09

    Using the $resource promise PR commit slated for 1.1.3, I was able to wrap $resource calls with $q and control the flow of their async behavoir.

    $scope.getAlbum = function(user, id, callback) {
        var promise = Imgur.album.get({user:user, id:id}).$promise.then(
            function( value ){
                return callback(value.data);
            },
            function( error ){
                //Something went wrong!
            }
        )
        return promise;
    }
    
    $scope.getAlbums = function(user, callback) {
        var prom = [];
        $scope.albumsList.forEach(function (obj, i) {
            var promise =
            $scope.getAlbum(user, obj.id, function(value){
                $scope.albums.push(value);
            });
            prom.push(promise);
    
        });
    
        $q.all(prom).then(function () {
            callback();
        });
    };
    
    $scope.getAlbums(user, function(){
        // Totally works, bro.
        console.log($scope.albums);
    });
    

提交回复
热议问题