[英]using promise in angularjs
我是angularjs的新手,我正在学习angular的promise。 我做了一个简单的样本来了解诺言如何运作
<body ng-controller="sampleController">
<div>{{one}}</div>
<br/>
<br/>
<div>Status - {{two}}</div>
<br/>
<br/>
<div ng-click="callback()">click</div>
</body>
<script>
function sampleController($scope, $q, $timeout) {
$scope.one = "Hello World"
$scope.two = "NA"
$scope.callback = function() {
$timeout(function() {
$scope.one = "Good Evening"
}, 2000);
}
change = function() {
$scope.two = "Changed"
}
var defer = $q.defer()
var promise = defer.promise;
promise = promise.then($scope.callback()).then(change());
}
</script>
JSBin: http : //jsbin.com/foxacawa/1/edit
通过使用Promise,一旦Hello World更改为Good Evening,我尝试更改状态,但是我没有得到输出。 正确的方法是什么? 请建议
一旦延迟解决,将调用then()
回调。 要解决延迟问题,只需使用defer.resolve()
(或defer.reject()
显示失败)
我认为这就是您要寻找的东西:
var defer = $q.defer()
$scope.callback = function(){
$timeout(function() {
$scope.one = "Good Evening";
defer.resolve('changed');
}, 2000);
}
只需查看$ q的文档即可了解更多详细信息。
另外:与
promise = promise.then($scope.callback()).then(change());
您会立即调用$ scope.callback和change函数,而不是调用promise时。
尝试
promise = promise.then($scope.callback).then(change);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.