/** * similar to es6 Promise.all method, however non-IPromise objects are not allowed * * returns a future which is settled once all promises provided are settled * */ public static <T> IPromise<List<IPromise<T>>> all(List<IPromise<T>> futures) { Promise res = new Promise(); awaitSettle(futures, res); return res; }
/** * similar to es6 Promise.all method, however non-IPromise objects are not allowed * * returns a future which is settled once all promises provided are settled * */ public static <T> IPromise<IPromise<T>[]> all(IPromise<T>... futures) { Promise res = new Promise(); awaitSettle(futures, res); return res; }
/** * similar to es6 Promise.all method, however non-IPromise objects are not allowed * * returns a future which is settled once all promises provided are settled * */ public static <T> IPromise<IPromise<T>[]> all(IPromise<T>... futures) { Promise res = new Promise(); awaitSettle(futures, res); return res; }
/** * similar to es6 Promise.all method, however non-IPromise objects are not allowed * * returns a future which is settled once all promises provided are settled * */ public static <T> IPromise<List<IPromise<T>>> all(List<IPromise<T>> futures) { Promise res = new Promise(); awaitSettle(futures, res); return res; }
/** * similar all but map promises to their content * * returns a future which is settled once all promises provided are settled * */ public static <T> IPromise<List<T>> allMapped(List<IPromise<T>> futures) { Promise returned = new Promise(); Promise res = new Promise(); awaitSettle(futures, res); res.then( (r, e) -> { if (r!=null) { returned.resolve(((List<Promise>)r).stream().map(p -> p.get()).collect(Collectors.toList())); } else { returned.complete(null,e); } }); return returned; }
/** * similar all but map promises to their content * * returns a future which is settled once all promises provided are settled * */ public static <T> IPromise<List<T>> allMapped(List<IPromise<T>> futures) { Promise returned = new Promise(); Promise res = new Promise(); awaitSettle(futures, res); res.then( (r, e) -> { if (r!=null) { returned.resolve(((List<Promise>)r).stream().map(p -> p.get()).collect(Collectors.toList())); } else { returned.complete(null,e); } }); return returned; }