Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

226
Visualizações
Especificaciones sobre la evaluación entusiasta de las devoluciones de llamadas de Promise

¿Hay algún detalle de especificación/implementación sobre qué tan "ansiosa" es la evaluación de las devoluciones de llamada de una promesa? Quiero decir, digamos que tengo

 var promise = new Promise((resolve) => { resolve() }); console.log(promise); // there is no public field '<state>', but you can see it in the console of the dev tools

Veo que la promise ya se cumplió; Esperaba que la implementación interna de Promise llamara a la devolución de llamada de resolve en un momento posterior, dejando una "ventana de tiempo" con la promise aún sin cumplir.

¿Es esta evaluación "ansiosa" de la devolución de llamada de resolve "por diseño"? ¿Es esto solo un detalle de implementación?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

La devolución de llamada que se pasa al constructor de Promise se ejecuta sincrónicamente por ese constructor. Entonces, cuando el operador new devuelve el objeto construido, la devolución de llamada ya se ha ejecutado.

Esto es por la especificación ECMA Script . El procedimiento para new Promise(excecutor) describe en el paso 9 que se llama al ejecutor y en el paso 11 que se devuelve el objeto de promesa construido.

Los colaboradores de Mozilla escriben :

Sintaxis

 new Promise(executor)

Parámetros

 executor

Una función que ejecutará el constructor, durante el proceso de construcción del nuevo objeto Promise .

La función de devolución de llamada del constructor generalmente se usa para iniciar un proceso asíncrono (basándose en una API asíncrona, como setTimeout ), que puede resolver la promesa en el momento en que la devolución de llamada del constructor ya ha regresado.

 function executor(resolve) { setTimeout(resolve, 100); } var promise = new Promise(executor);

En su ejemplo, esa devolución de llamada no se basa en una API asíncrona, sino que llama sincrónicamente a la devolución de llamada de resolve . Eso significa que cuando el objeto de promesa construido se asigna a su variable de promise , esa promesa ya se encuentra en un estado cumplido.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda