Movatterモバイル変換


[0]ホーム

URL:


Skip to content
DEV Community
Log in Create account

DEV Community

Cover image for Programación asincrónica en Javascript
Wellington Cua
Wellington Cua

Posted on

Programación asincrónica en Javascript

JavaScript, al ser un lenguaje de un solo subproceso, solo puede procesar una tarea a la vez. Esto puede provocar largos tiempos de espera para tareas complejas, ya que el script no podrá ejecutar ninguna otra tarea hasta que termine la actual. Para abordar este problema, JavaScript ofrece programación asincrónica, permitiendo que el script continúe ejecutando otras tareas mientras espera que se complete una tarea asincrónica. En este blog, exploraremos los conceptos básicos de la programación asincrónica en JavaScript y cómo se puede implementar utilizando funciones de devolución de llamada, promesas y async/await.

Funciones de devolución de llamada

Una función de devolución de llamada es una función que se pasa como argumento a otra función y se ejecuta después de que la función principal haya terminado. Las devoluciones de llamada se utilizan en programación asincrónica para realizar una acción una vez que se ha completado una tarea.

Por ejemplo, considere el siguiente código:

function slowTask(callback) {  setTimeout(() => {    console.log("Slow task completed.");    callback();  }, 1000);}function runProgram() {  console.log("Program started.");  slowTask(() => {    console.log("Callback function executed.");  });  console.log("Program ended.");}runProgram();
Enter fullscreen modeExit fullscreen mode

En este ejemplo, la funciónslowTask toma una devolución de llamada como argumento. La funciónslowTask utilizasetTimeout para retrasar la ejecución de una tarea durante un segundo. La funciónrunProgram llama aslowTask y pasa una función de devolución de llamada como argumento. Además, la funciónrunProgram registra "Programa iniciado" y "Programa finalizado". Cuando la funciónslowTask se completa, registra "Tarea lenta completada" y ejecuta la función de devolución de llamada, que registra "Función de devolución de llamada ejecutada"

Program started.Program ended.Slow task completed.Callback function executed.
Enter fullscreen modeExit fullscreen mode

Promesas

Las promesas son un enfoque más moderno para la programación asincrónica en JavaScript. Una promesa representa el resultado de una operaciónasincrónica y puede estar en uno de tres estados: pendiente, cumplida o rechazada. Se puede crear una promesa usando elPromise constructor y su estado se puede determinar usando los métodosthen ycatch.

Por ejemplo:

const slowTask = new Promise((resolve, reject) => {  setTimeout(() => {    resolve("Slow task completed.");  }, 1000);});function runProgram() {  console.log("Program started.");  slowTask    .then((result) => {      console.log(result);    })    .catch((error) => {      console.error(error);    });  console.log("Program ended.");}runProgram();
Enter fullscreen modeExit fullscreen mode

En este ejemplo, la funciónslowTask retorna una promesa que se resuelve después de un segundo con el mensaje "Tarea lenta completada". La funciónrunProgram llama aslowTask y utiliza el métodothen para registrar el resultado cuando se cumple la promesa.

La salida será:

Program started.Program ended.Slow task completed.
Enter fullscreen modeExit fullscreen mode

Asíncrono/Espera

Async/await es la forma más reciente y legible de manejar operacionesasincrónicas en JavaScript. Permite a los desarrolladores escribir código asincrónico que se asemeja al código síncrono, lo que facilita su comprensión y mantenimiento. La palabra claveasync se usa para declarar una función asincrónica, y la palabra claveawait se usa para esperar a que se resuelva una promesa.

A continuación, se muestra unejemplo para demostrar el uso de async/await en #"https://api.example.com/data"); const data = await response.json(); console.log(data);}fetchData();

Enter fullscreen modeExit fullscreen mode

En este ejemplo, la funciónfetchData se declara como asincrónica mediante la palabra claveasync. La función utilizafetch para recuperar datos de unaAPI yawait para esperar a que se complete la operación de recuperación. Luego, la respuesta obtenida se transforma en un objeto JSON usandoresponse.json(). La palabra claveawait se utiliza para esperar a que se complete la transformación a JSON y el resultado final se registra en la consola.

Es importante tener en cuenta que el código dentro de una función asincrónica se ejecutará de forma asincrónica, pero el código fuera de la función se seguirá ejecutando de forma sincrónica. Además, la palabra claveawait solo se puede utilizar dentro de una función asincrónica.

En conclusión, la programación asincrónica en JavaScript permite que el script continúe ejecutando otras tareas mientras espera que se complete una tarea asincrónica. Las funciones de devolución de llamada, las promesas yasync/await son tres formas de lograr la programación asincrónica en JavaScript.

Las funciones de devolución de llamada son la forma más sencilla y básica de manejar operaciones asincrónicas. Las promesas ofrecen un enfoque más moderno y flexible.

Async/await proporciona la forma más legible de manejar operaciones asincrónicas y es el método recomendado para la programación en JavaScript moderna.
Comprender la programación asincrónica en JavaScript es crucial para crear aplicaciones eficientes y responsivas. Es una habilidad imprescindible para cualquier desarrollador de JavaScript.

Top comments(0)

Subscribe
pic
Create template

Templates let you quickly answer FAQs or store snippets for re-use.

Dismiss

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment'spermalink.

For further actions, you may consider blocking this person and/orreporting abuse

Soy un apasionado desarrollador web con un intenso deseo de aprendizaje y exploración de nuevas tecnologías.
  • Joined

More fromWellington Cua

DEV Community

We're a place where coders share, stay up-to-date and grow their careers.

Log in Create account

[8]ページ先頭

©2009-2025 Movatter.jp