So this function would basically just turn into:

```
return Async.doInParallel_aggregateErrors(paths, function (path) {
    return loadDirectory(path.path);
});
```

Then `loadDirectory` can just reject the promise if there's an error, and whoever calls `loadList()` can just have a `fail()` handler that will receive an array of the rejection errors.