AngularJS 廣義回調(diào)管理機(jī)制

2018-07-26 17:27 更新

和其它框架一樣, ng 提供了廣義的異步回調(diào)管理的機(jī)制。 $http 服務(wù)是在其之上封裝出來(lái)的。這個(gè)機(jī)制就是 ng 的 $q 服務(wù)。

不過(guò) ng 的這套機(jī)制總的來(lái)說(shuō)實(shí)現(xiàn)得比較簡(jiǎn)單,按官方的說(shuō)法,夠用了。

使用的方法,基本上是:

  • 通過(guò) $q 服務(wù)得到一個(gè) deferred 實(shí)例
  • 通過(guò) deferred 實(shí)例的 promise 屬性得到一個(gè) promise 對(duì)象
  • promise 對(duì)象負(fù)責(zé)定義回調(diào)函數(shù)
  • deferred 實(shí)例負(fù)責(zé)觸發(fā)回調(diào)
angular.module('app', [], angular.noop)
.controller('TestCtrl', function($scope){
  var defer = $q.defer();
  var promise = defer.promise;
  promise.then(function(data){console.log('ok, ' + data)},
               function(data){console.log('error, ' + data)});
  //defer.reject('xx');
  defer.resolve('xx');
});

了解了上面的東西,再分別看 $q , deferred , promise 這三個(gè)東西。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)