Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

242
Vistas
¿Por qué prometer? Entonces no devuelvas nada, ¿hará que la promesa sea devuelta por .entonces 'resuelta'?

Aquí hay una cita sobre Promise.then() de MDN .

Valor de retorno

Una vez que se cumple o se rechaza una Promesa, la función del controlador respectivo (onFulfilled o onRejected) se llamará de forma asincrónica (programada en el bucle de subproceso actual). El comportamiento de la función del controlador sigue un conjunto específico de reglas. Si una función de controlador:

  • devuelve un valor, la promesa devuelta entonces se resuelve con el valor devuelto como su valor.
  • no devuelve nada, la promesa devuelta entonces se resuelve con un valor indefinido.
  • arroja un error, la promesa devuelta por entonces se rechaza con el error arrojado como su valor.
  • devuelve una promesa ya cumplida, la promesa devuelta entonces se cumple con el valor de esa promesa como su valor.
  • devuelve una promesa ya rechazada, la promesa devuelta entonces se rechaza con el valor de esa promesa como su valor.
  • devuelve otro objeto de promesa pendiente, la resolución/rechazo de la promesa devuelta para entonces será posterior a la resolución/rechazo de la promesa devuelta por el controlador. Además, el valor resuelto de la promesa devuelta en ese momento será el mismo que el valor resuelto de la promesa devuelta por el controlador.

Mi pregunta es ¿por qué el estado de promesa devuelto por .then está "resuelto" en lugar de "cumplido" en el segundo punto?

Parece tener un solo estado: cumplido. ¿Por qué no usar la palabra "cumplido" como el cuarto punto?

En el primer punto y el segundo punto, ambos estados de promesa regresan por .then está "resuelto".

Sobre el primer punto, en la mayoría de los casos, el estado se "cumple". Y si la devolución de llamada devuelve un theable, el estado de promesa puede ser "rechazado":

 let thenableObj = { then(thenableRes, thenableRej) { thenableRej('thenable reject') } } let p = Promise.resolve('foo') p.then(() => { return thenableObj }) // Promise{<rejecter>: 'thenable reject'}

Entonces, puedo aceptar la palabra "resuelto". Pero, en el segundo punto, no encuentro ningún ejemplo que demuestre que la palabra "resuelto" es más precisa que "cumplido".

Más específicamente, ¿puede dar algunos ejemplos para probar:

  1. el estado de la promesa devuelta por .then será rechazada cuando la devolución de llamada en .then no devuelva nada.
  2. el estado de la promesa devuelto por .then se "bloqueará" para que coincida con el estado de otra promesa cuando la devolución de llamada en .then no devuelva nada.

si ninguno funciona, ¿por qué no usamos la palabra "cumplido" como cuarto punto que "resuelto"?

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda