jQueryの$.whenみたいに複数のdeferredを同時に処理するみたいのはAngularJSだと$q.allでできる。 var d1 = $q.defer(); var d2 = $q.defer(); var d3 = $q.defer(); $timeout(function() { console.log('d1'); d1.resolve('d1'); }, 10); $timeout(function() { console.log('d2'); d2.resolve('d2'); }, 1000); $timeout(function() { console.log('d3'); d3.resolve('d3'); }, 200); $q.all([ d1.promise, d2.promise, d3.promise ]).then(function(result)