Tengo el siguiente fragmento de código:
const [groupedMeditations, meditationPreferences] = await Promise.all([ getMeditationsByGroup(), getAllPreferences(), ]);pero actualmente los errores no se manejan de ninguna manera. ¿Sería correcto rodear ese fragmento de código con try-catch como este:
try { const [groupedMeditations, meditationPreferences] = await Promise.all([ getMeditationsByGroup(), getAllPreferences(), ]); } catch (error) { // error handle }try/catch es una forma correcta de detectar errores de Promise.all , pero al mismo tiempo, ignorará todas las solicitudes cumplidas una vez que solo haya fallado una sola solicitud, lo que no es ideal si aún desea tener otros datos de solicitudes exitosas en su lugar. de errores de registro, por lo que le sugiero que use Promise.allSettled
Con esta solución, mantendrá todas las solicitudes, incluidas las fallidas y las exitosas.
const [groupedMeditations, meditationPreferences] = await Promise.allSettled([ getMeditationsByGroup(), getAllPreferences(), ]);Un posible resultado puede ser
[ {status: "fulfilled", value: "successful value"}, // your 1st request passed {status: "rejected", reason: "Error: an error"} //your 2nd request failed ]A partir de esa respuesta, puede filtrar o registrar errores
Solo una nota al margen que Promise.allSettled no funciona para IE, por lo que debe tener polyfill para superar eso
Con suerte, es útil para su caso: D