How to use $q to get a promise from a $broastcast in angularJS
问题 Right now my controller code looks like this: $scope.spAPI.load(id).then(function(result){ var deferred = $q.defer(); if(result !== undefined){ deferred.resolve($rootScope.$broadcast("onSpLoaded", result)); } return deferred.promise; }).then(function(success){ $scope.modalInstance = $modal.open({ ... }); }); I want the modal instance to be opened AFTER the broadcasts are processed. Is there a way to do this? Update: I was thinking about this problem backwards. I meant to do the broadcast