How do I add a callback function after an async forEach Loop?
Here is some better context:
$scope.getAlbums = function(user, callback) {
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);
});