I am looking for something similar to Promise.all that will continue to resolve promises concurrently even in the event that one or more of the promises reject
I have succeeded in using
Promise.alltogether with only ever resolving thefetchRequestpromises
That's basically the way to go. ES6 does not have a helper function like allSettled (Q) or settle (Bluebird 2.x) for this case, so we will need to use Promise.all similar to like you did. Bluebird even has a dedicated .reflect() utility for this.
You would however not resolve them with undefined in the case of a rejection, but rather with some useful value that allows to identify the errors.
function promiseRequests(requests) {
return Promise.all(requests.map(request => {
return fetch(request).then(res => {
return {value:res};
}, err => {
return {reason:err};
});
}));
}