Merge pull request #12466 from rufusl/angular-promise-tracker

Angular promise tracker
This commit is contained in:
Yui
2016-11-07 14:03:44 -08:00
committed by GitHub
3 changed files with 69 additions and 0 deletions
@@ -0,0 +1,20 @@
angular.module('promise-tracker-tests', []).run(['$q', 'promiseTracker',
($q: angular.IQService, promiseTracker: angular.promisetracker.PromiseTrackerService) => {
const trackerWithoutOptions = promiseTracker();
const options = {
activationDelay: 10,
minDuration: 500
} as angular.promisetracker.PromiseTrackerOptions;
const trackerWithOptions = promiseTracker(options);
const isActive: boolean = trackerWithOptions.active();
const tracking: boolean = trackerWithOptions.tracking();
const trackingCount: number = trackerWithOptions.trackingCount();
trackerWithOptions.cancel();
const createdPromise: angular.IDeferred<void> = trackerWithOptions.createPromise();
const promiseToAdd = $q.defer().promise;
const addedPromise: angular.IDeferred<void> = trackerWithOptions.addPromise(promiseToAdd);
}]);
+30
View File
@@ -0,0 +1,30 @@
// Type definitions for angular-promise-tracker 2.2.2
// Project: https://github.com/ajoslin/angular-promise-tracker
// Definitions by: Rufus Linke <https://github.com/rufusl/>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/// <reference types="angular" />
import * as angular from 'angular';
declare module 'angular' {
export namespace promisetracker {
interface PromiseTrackerOptions {
activationDelay: number;
minDuration: number;
}
interface PromiseTracker {
active(): boolean;
tracking(): boolean;
trackingCount(): number;
addPromise<T>(promise: angular.IPromise<T>): angular.IDeferred<void>;
createPromise(): angular.IDeferred<void>;
cancel(): void;
}
interface PromiseTrackerService {
(options?: PromiseTrackerOptions): PromiseTracker;
}
}
}
+19
View File
@@ -0,0 +1,19 @@
{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"noImplicitAny": true,
"strictNullChecks": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"angular-promise-tracker-tests.ts"
]
}