Espere hasta que se completen todas las promesas de ES6, incluso las promesas rechazadas

Digamos que tengo un conjunto de promesas que están haciendo solicitudes de red, de las cuales una fallará:

// http://does-not-exist will throw a TypeError
var arr = [ fetch('index.html'), fetch('http://does-not-exist') ]

Promise.all(arr)
  .then(res => console.log('success', res))
  .catch(err => console.log('error', err)) // This is executed   

Digamos que quiero esperar hasta que todo esto haya terminado, independientemente de si uno ha fallado. Puede haber un error de red para un recurso sin el cual puedo vivir, pero que si puedo obtener, quiero antes de continuar. Quiero manejar fallas de red con gracia.

Ya quePromises.all no deja espacio para esto, ¿cuál es el patrón recomendado para manejar esto, sin usar una biblioteca de promesas?

Respuestas a la pregunta(15)

Su respuesta a la pregunta