gpt4 book ai didi

javascript - 在 AngularJS 中使用 Promise

转载 作者:行者123 更新时间:2023-11-28 01:27:05 24 4
gpt4 key购买 nike

我是 AngularJS 的新手,我正在学习 Angular 中的 Promise。我做了一个简单的示例来了解 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了解更多详情。

关于javascript - 在 AngularJS 中使用 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22562547/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com