我想为我的服务提供商创建一个链式承诺:
this.$get = function($q, $window, $rootScope) {
var $facebook=$q.defer();
$rootScope.$on("fb.load", function(e, FB) {
$facebook.resolve(FB);
});
$facebook.api = function () {
var args=arguments;
args[args.length++] = function(response) {
$facebook.resolve(response);
};
$facebook.promise.then(function(FB) {
FB.api.apply(FB, args);
});
return $facebook.promise;
};
return $facebook;
};
比我呼吁的承诺:$scope.user=$facebook.api("/me");
问题是因为deferred
已经解决了,所以不要等到api
方法解决它。
我如何才能以最后一个承诺等到最后一个承诺解决的方式链接它们?