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

254
Vistas
¿La función Javascript .then () verifica la promesa en una API web?

Gracias por leer esto.

Realmente estoy luchando por comprender completamente cómo funciona la programación asíncrona en Javascript. Imagina este código:

 Promise.resolve().then(randomcallback)

Entonces, en este escenario, lo que creo que sucedería es lo siguiente: en primer lugar, en la pila de llamadas normal, la función Promise.resolve () resolvería inmediatamente un objeto Promise y lo devolvería. Luego, la función .then() verifica si la promesa está resuelta y, de ser así, agrega la función de devolución de llamada aleatoria a la cola de microtareas que, cuando la pila de llamadas está vacía, se ejecuta y devuelve un nuevo objeto de promesa. Pero imagina si en lugar de llamar a la función .then() en un objeto de promesa resuelto, la llamamos en un objeto pendiente. ¿Cómo puede la función entonces verificar cuándo se resuelve el objeto Promesa? ¿Está constantemente comprobando algún subproceso de API web como un detector de eventos (ya que el resto del programa puede ejecutarse) para que la propiedad de estado se cambie a cumplida para luego pasar la función de devolución de llamada a la cola de microtareas?

Lo mismo para la espera asíncrona, ¿la palabra clave espera solo se pone en contacto con alguna API web para escuchar cuando se resuelve la promesa? Si es así, todavía lo hace si el objeto de promesa ya se resolvió al principio (sin establecer el tiempo de espera) si usa:

 randomunresolvedpromise.then(randomcallback)

digamos que la promesa aleatoria no resuelta se cumple en 3 segundos (cuando la pila de llamadas está vacía) ¿cómo se ejecuta la función .then (también he mirado el código fuente de la biblioteca, pero es realmente confuso ya que usa tantas funciones de devolución de llamada) desde el programa literalmente sigue ejecutándose y la promesa resuelta al azar solo se cumple cuando la pila está vacía, ¿la función también está esperando en algún tipo de API web o qué?

Literalmente he visto muchos videos, leído muchos artículos, pero no parecen tocar lo que realmente sucede en el ciclo de eventos cuando uso Promises y async and await. Todo es realmente confuso para mí, espero que mi pregunta realmente tenga algún sentido. Realmente agradezco cualquier respuesta, gracias!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

¿Cómo puede la función entonces verificar cuándo se resuelve el objeto Promesa?

no lo hace El método then coloca la devolución de llamada en la lista de devoluciones de llamada de cumplimiento de la promesa, y luego su trabajo está completo. Más tarde, cuando se cumple la promesa, es ese código (cumpliendo la promesa) el que pone las llamadas a las devoluciones de llamada de cumplimiento de la promesa en la cola de microtareas. (Tienes razón, sin embargo, es then el que lo hace cuando la promesa ya se ha cumplido cuando se llama then ).

await funciona de la misma manera, ya que await es "simplemente" azúcar sintáctico para then . (Sin embargo, ese "simplemente" se salta muchos detalles. :-D)


Nota al margen: notará que dije "devoluciones de llamada de cumplimiento", no "devoluciones de llamada de resolución", y me referí a la promesa cumplida (no resuelta ). Hay una gran diferencia entre "cumplido" y "resuelto", pero desafortunadamente no se entiende bien y la gente usa "resolver" cuando quiere decir "cumplir" mucho . Vea mi publicación de blog aquí (que la gente de MDN vinculó desde su documentación ) para ver la diferencia (y por qué es importante). (Dicho esto, si dice que "resuelve la promesa con X" y X no es una promesa u otra opción , eso es básicamente sinónimo de "cumplir la promesa con X". Eso no es cierto cuando X es una promesa u otra opción. )

about 4 years ago · Juan Pablo Isaza Denunciar
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