Resolved promises can still fire
If you call then() on a resolved promise, your function still gets called.
by jdmarshall
HTML
<script src="https://code.angularjs.org/1.2.12/angular.js"></script>
<div ng-controller="MyCtrl">
<h2>Promises can be triggered after they're resolved</h2>
<div class="output">Promise fired: {{output}}</div>
<div class="input">
<button ng-click='doClick()'>Click me</button>
</div>
</div>
CSS
body{
padding: 10px;
}
.input, .output {
padding: 10px;
}
.output {
height: 20px;
}
JavaScript
var myApp = angular.module('myApp',[]);
function MyCtrl($scope, $q) {
var deferred = $q.defer();
var promise = deferred.promise;
// Promise is already resolved, but you can still add a then()
deferred.resolve("yes");
$scope.doClick = function() {
promise.then(function(value) {
$scope.output = value;
});
};
}