Drive-by: have you checked out `Async.doInParallel_aggregateErrors()`? That might be a better alternative. If you use that, then if any sub-promise is rejected, the argument to reject() is added to an array, and that array is passed to the master promise's reject().