Skip to content

Commit c95aa94

Browse files
committed
feat(addPromise): except an array, remove this-sensitivity
1 parent 003d20a commit c95aa94

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

promise-tracker.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,11 @@ angular.module('ajoslin.promise-tracker', [])
1919
}
2020

2121
return function PromiseTracker(options) {
22-
//do new if user doesn't
23-
if (!(this instanceof PromiseTracker)) {
24-
return new PromiseTracker(options);
25-
}
26-
2722
options = options || {};
2823

2924
//Array of promises being tracked
3025
var tracked = [];
31-
var self = this;
26+
var self = {};
3227

3328
//Allow an optional "minimum duration" that the tracker has to stay active for.
3429
var minDuration = options.minDuration;
@@ -109,10 +104,15 @@ angular.module('ajoslin.promise-tracker', [])
109104
};
110105

111106
self.addPromise = function(promise) {
107+
if (Array.isArray(promise)) {
108+
return $q.all(promise.map(self.addPromise));
109+
}
110+
112111
promise = promise && (promise.$promise || promise) || {};
113112
if (!promise.then) {
114113
throw new Error("promiseTracker#addPromise expects a promise object!");
115114
}
115+
116116
var deferred = self.createPromise();
117117

118118
//When given promise is done, resolve our created promise
@@ -131,4 +131,4 @@ angular.module('ajoslin.promise-tracker', [])
131131
}];
132132
});
133133

134-
}());
134+
}());

0 commit comments

Comments
 (0)