Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

258
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!