この小さなコードは、AngularJS のカスタム サービスで記述しました。
私のサービスでは:
var deferred = $q.defer();
var promise = deferred.promise;
deferred.resolve('success');
deferred.reject('error');
/* Handle success and error */
promise.success = function(fn) {
promise.then(function(response) {
fn(response);
});
return promise;
};
promise.error = function(fn) {
promise.then(null, function(response) {
fn(response);
});
return promise;
};
私のコントローラーで:
promiseService.myPromise()
.success(function(data){
$scope.success= data;
})
.error(function(data){
$scope.error = data;
});
プロミス ($q サービス) からの成功とエラーを処理するだけです。他の多くのサービスでこのコードが必要なので、カスタムで $q サービスを直接拡張します。
だから私は私のサービスでこのようなものが欲しいです:
var deferred = myPromiseService.$qCustom.defer();
var promise = deferred.promise;
deferred.resolve('success');
deferred.reject('error');
return promise;
何か案が?私の問題は、$q のすべての機能を拡張してカスタムを追加する良い方法を見つけることです。
私はそのようなものから始めます.$qを箱から出して処理するのは仕事です:
angular.module('myApp').service('myPromiseService', function($q){
$qCustom = $q;
});