const asyncThrowSampleApiFunction = async () => { throw new Error('SOMETHING'); }; const MyComponent = (SomeApiFunction) => { try { SomeApiFunction(); } catch (err) { handleMyError(err); } return ...; }; const c = MyComponent(() => { asyncThrowSampleApiFunction(); // call async function without 'await' or 'Promise.catch' }); ¿Hay alguna forma de detectar un rechazo de promesa no controlado sin Promise.catch o await ?
En React.useEffect , a menudo usamos una llamada de función async sin una declaración de await . Y quiero manejar posibles errores asincrónicos en React.useEffect .
Entonces, quiero detectar un rechazo de promesa no controlado, pero solo puedo encontrar una forma global de detectar estos tipos de rechazo.
(por ejemplo window.addEventListener('unhandledrejection', ...); )
Quiero hacer mi propio ErrorBoundary . Entonces necesito detectar estos rechazos localmente.
¿Hay alguna forma de atraparlos?
Gracias.
¿Cómo puedo detectar un rechazo de promesa no controlado localmente sin 'esperar' o 'Promise.catch'?
Debe capturar una promesa rechazada en algún lugar con .catch() , con el segundo argumento de .then() o poniendo entre paréntesis un await con un try/catch . Esas son sus únicas tres opciones.
Entonces, técnicamente, si está buscando algo diferente a await o .catch() , podría usar el segundo argumento para .then() - aunque sospecho que eso no es realmente lo que estaba pidiendo, en cuyo caso, no hay otro opciones