首页 > Web开发 > 详细

AngularJS promise的使用

时间:2015-10-04 12:15:22      阅读:313      评论:0      收藏:0      [点我收藏+]

 

<!doctype html>
<html ng-app="myApp">
<head>
  <link rel="stylesheet" href="http://cdn.jsdelivr.net/foundation/4.3.2/css/foundation.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.js"></script> 
</head>
<body>
  
<h1>Open Pull Requests for Angular JS</h1>

<ul ng-controller="DashboardController">
  <li ng-repeat="pr in pullRequests">
    {{ pr.title }}
  </li>
</ul>
  
</body>
</html>

 

angular.module(‘myApp‘, [])

.controller(‘DashboardController‘, [
  ‘$scope‘, ‘GithubService‘,
    function($scope, GithubService) {
      GithubService.getPullRequests()
      .then(function(data) {
        $scope.pullRequests = data;
      });
}])
.factory(‘GithubService‘, [
  ‘$q‘, ‘$http‘,
    function($q, $http) {
      var getPullRequests = function() {
        var deferred = $q.defer();
        // Get list of open angular js pull requests from github
        $http.get(‘https://api.github.com/repos/angular/angular.js/pulls‘)
        .success(function(data) {
          deferred.resolve(data);
        })
        .error(function(reason) {
          deferred.reject(reason);
        });
        return deferred.promise;
      };

      return { // return factory object
        getPullRequests: getPullRequests
      };
}]);

 then:无论promise成功还是失败了,当结果可用之后,then都会立刻异步调用successFn或者errFn。这个方法始终用一个参数来调用回调函数:结果,或者是拒绝的理由。promise被执行或者拒绝之前notifyFn回调可能会被调用0到多次,以提供过程状态的提示。

then()方法总是返回一个新的promise,可以通过successFn或者errFn这样的返回值执行或者被拒绝。它也能通过notifyFn提供通知。

AngularJS promise的使用

原文:http://www.cnblogs.com/ByronWu12345/p/4854323.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!