En el siguiente código, el resultado muestra claramente que el rechazo está dentro del objeto promise1 creado. Sin embargo, cuando observo MDN, no hay ninguna propiedad que indique si una promesa se resuelve o se rechaza. ¿Cómo sabe el programa si se acepta una promesa? ¿Dónde se almacena esta información?
const promise1 = new Promise((resolve, reject) => { throw 'Uh-oh!'; }); console.log(promise1); //Promise { <rejected> 'Uh-oh!' } promise1.catch((error) => { console.error(error); });Si recibo correctamente la pregunta, pregunta sobre los casos en los que JS rechaza la promesa. Se rechaza una promesa cuando se devuelve un error de la función de devolución de llamada. En general, usted (el programador) define las condiciones que significan éxito o error según el código comercial. Según lo que necesite, puede descartar o rechazar la promesa y estas preguntas y respuestas parecen útiles. Pero cuando se va a usar una promesa con un propósito específico, este comportamiento parece más claro, por ejemplo, cuando usa JS fetch api, hay situaciones sólidas en las que la promesa sería rechazada, es decir, desconexiones de red o errores CORS. Aquí puede encontrar una respuesta más detallada. Estas situaciones son aquellas que no están sesgadas hacia ningún protocolo de transferencia de datos como HTTP. Finalmente, aquí puede encontrar un patrón bastante bien explicado para diseñar su flujo de trabajo de promesa.
No hay una API pública para verificar el estado de Promesa, por lo que no hay ninguna propiedad que pueda verificar.
Ante la imposibilidad, puedes intentar hacerlo por tu cuenta con alguna de estas soluciones:
https://github.com/nodejs/node/issues/40054#issuecomment-917641057