【发布时间】:2014-01-21 05:55:38
【问题描述】:
我知道在把握承诺时我仍然缺少一些东西。我创建了这个 jsfiddle 来突出我的问题。我试着倒计时然后去 BOOM!然而,繁荣首先到来,然后是倒计时。我做错了什么/错过了什么?
HTML
<div ng-app="" ng-controller="Controller">
<pre>{{output}}</pre>
</div>
JS
function Controller($scope, $q) {
$scope.output = "Boom Goes the Dynamite in... "
$scope.countdown = 10;
var defer = $q.defer();
defer.promise
.then(function() {
var timer = setInterval(function() {
$scope.output+="\n " + $scope.countdown;
$scope.$apply();
if ($scope.countdown === 0) {
clearInterval(timer);
}
$scope.countdown--;
},1000);
return true
})
.then(function(data) {
$scope.output+="\n " + "BOOM!!!!!";
});
defer.resolve();
}
【问题讨论】:
标签: javascript angularjs asynchronous promise