Skip to content

Commit 62b2ebc

Browse files
fix(coreservices): Use Promise.reject()/resolve()/all()
closes #2683
1 parent 0742d25 commit 62b2ebc

File tree

1 file changed

+4
-7
lines changed

1 file changed

+4
-7
lines changed

src/justjs.ts

+4-7
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import {extend, assertPredicate, forEach, applyPairs} from "./common/common";
1010

1111
/** $q-like promise api */
1212
services.$q = (executor: (resolve, reject) => void) => new Promise(executor);
13-
services.$q.when = (val) => new Promise((resolve, reject) => resolve(val));
14-
services.$q.reject = (val) => new Promise((resolve, reject) => { reject(val); });
13+
services.$q.when = (val) => Promise.resolve(val);
14+
services.$q.reject = (val) => Promise.reject(val);
1515
services.$q.defer = function() {
1616
let deferred: any = {};
1717
deferred.promise = new Promise((resolve, reject) => {
@@ -24,11 +24,7 @@ services.$q.defer = function() {
2424

2525
services.$q.all = function (promises: { [key: string]: Promise<any> } | Promise<any>[]) {
2626
if (isArray(promises)) {
27-
return new Promise((resolve, reject) => {
28-
let results = [];
29-
promises.reduce((wait4, promise) => wait4.then(() => promise.then(val => results.push(val))), services.$q.when())
30-
.then(() => { resolve(results); }, reject);
31-
});
27+
return Promise.all(promises);
3228
}
3329

3430
if (isObject(promises)) {
@@ -38,6 +34,7 @@ services.$q.all = function (promises: { [key: string]: Promise<any> } | Promise<
3834
// When each promise resolves, map it to a tuple { key: key, val: val }
3935
let chain = Object.keys(promises)
4036
.map(key => promises[key].then(val => ({key, val})));
37+
4138
// Then wait for all promises to resolve, and convert them back to an object
4239
return services.$q.all(chain).then(values => {
4340
let value = values.reduce((acc, tuple) => { acc[tuple.key] = tuple.val; return acc; }, {});

0 commit comments

Comments
 (0)