如何在 AngularJS 中使用 Promise
要在 AngularJS
中使用 Promise
,要使用 AngularJS
的内置服务 $q
。
我们可以先使用 $q
的 defer()
方法创建一个 deferred
对象,然后通过 deferred
对象的 promise
属性,将这个对象变成一个 promise
对象; 这个 deferred
对象还提供了三个方法,分别是 resolve()
,reject()
,notify()
。
HTML 代码:
<!DOCTYPE html> <html lang="en"> <head> <title>demo</title> <Meta charset="UTF-8"> <Meta name="viewport" content="width=device-width,initial-scale=1"> </head> <body> <div ng-app="myApp"> <div ng-controller="myController"> <label for="flag">成功 <input type="checkBox" name="flag" id="flag" ng-model="flag"> </label> <hr> <button ng-click="handle()">点击我</button> </div> </div> <script src="js/angular.js"> </script> <script src="js/promise.js"></script> </body> </html>
JS 代码:
angular.module('myApp',[]) .controller('myController',['$scope','$q',function($scope,$q) { $scope.flag = true $scope.handle = function() { // 创建一个 deferred 对象 var deferred = $q.defer() // 创建一个 promise 对象 var promise = deferred.promise promise.then(function(result) { alert('Success: ' + result) },function(error) { alert('Fail: ' + error) }) if ($scope.flag) { deferred.resolve('you are lucky!') } else { deferred.reject('sorry,it lost!') } } }])原文链接:https://www.f2er.com/angularjs/147884.html