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

121
Visualizações
Promesa: diferencia de esperar frente a simplemente llamar a la función

Estoy tratando de entender async/await y entender la diferencia de await frente a simplemente llamar a la función tal cual, sería sincrónico de todos modos, ¿verdad?

 function foo() { this.doSomething(); // waits for this to run before going to next line return "1"; } async foo() { await this.doSomething(); // waits for this to run before going to next line return "1"; }

¿No están ambos esperando que termine doSomething() ?

about 4 years ago · Santiago Gelvez
1 Respostas
Responde à pergunta

0

Si doSomething() es una función async o devuelve una Promesa: entonces el primer ejemplo no espera a que se complete lo que suceda dentro de doSomething() . doSomething() aún se ejecutará, pero fuera del flujo de ejecución de foo() .

Si doSomething() es una función síncrona: entonces ambos ejemplos no difieren.

Más explicación: el concepto de async/await gira en torno a Promise , por lo que para comprender async/await debe comprender Promise primero. Una Promise consta de una operación asincrónica y un valor de retorno futuro de esa operación asincrónica.

El modificador async hace que una función sea asíncrona al hacer que devuelva una Promise . Cada vez que llama a una función async , el contenido de la función en realidad se envuelve en una Promise y se ejecuta fuera del flujo del sitio de llamada. Una simple llamada de una función async devolverá una Promesa en lugar del valor de la función.

 async function intFunction() { return 1 } function foo() { const result = intFunction(); // result is actually a Promise, not 1. console.log(result instanceof Promise); // should print true } foo();

La palabra clave await "espera" una Promise . Cada vez que llama await con Promise , Promise se ejecuta, el resultado se espera y se devuelve en el mismo contexto de ejecución en el que lo llamó. Por lo tanto, solo tiene sentido poder llamar en await solo en un contexto asíncrono, por lo que no bloqueará el único subproceso del motor JS.

 async function intFunction() { return 1 } async function foo() { const promise = intFunction(); const value = await promise; console.log(value === 1); // should be true } foo(); // You can call an asynchronous function in the outermost context in running Node.js, // the engine will wait for all those functions to finish before exiting.
about 4 years ago · Santiago Gelvez 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