$q.all(promises)
            .then(function(result) {
              deferred.resolve(result);
            })
            .catch(function(reason) {