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

110
Vistas
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 Respuestas
Responde la pregunta

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 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