namespace NineYi.Mall.Services {
export interface IBaseServiceImmediate {
CallPromiseAction<T>(func: ng.IPromise<T>): ng.IPromise<T>;
CallHttpPromiseAction<T>(func: ng.IHttpPromise<T>): void;
}
export class BaseServiceImmediate implements IBaseServiceImmediate {
static $inject = ['$q'];
public $q: ng.IQService;
constructor($q: ng.IQService) {
this.$q = $q;
}
public CallPromiseAction<T>(func: ng.IPromise<T>): ng.IPromise<T> {
let defer = this.$q.defer();
func.then((res: T) => {
defer.resolve(res);
});
return defer.promise;
}
public CallHttpPromiseAction<T>(func: ng.IHttpPromise<T>): ng.IPromise<ng.IHttpPromiseCallbackArg<T>> {
let defer = this.$q.defer();
func.success((res: ng.IHttpPromiseCallbackArg<T>) => {
defer.resolve(res);
}).error((res: ng.IHttpPromiseCallbackArg<T>) => {
defer.reject(res);
});
return defer.promise;
}
}
angular.module('NineYi.Mall.Services')
.service('BaseServiceImmediate', BaseServiceImmediate);
}