Of course, this will require you to wait until all the promises input are set. While someone expects that they can refuse, you cannot be sure that you have all the deviations!
Thus, you can use Promise.all, but after converting the input promises, to catch the deviations and identify them, possibly wrapping them in an object Error, as in
caughtPromises = promises.map(promise => promise.catch(Error));
Promise.all, , :
Promise.all(caughtPromises)
.then(results => results.filter(result => result instanceof Error))
et voilà.
user663031