Curso javascript nivel medio
async y await en JavaScript con la PokeAPI
En JavaScript, async y await son dos palabras clave que facilitan el trabajo con operaciones asíncronas, como las solicitudes a una API, de una manera que hace que el código sea más legible y fácil de entender. Estas palabras clave permiten escribir código asíncrono que se lee como si fuera código síncrono.
¿Qué son async y await?
async: Es una palabra clave que se coloca antes de una función para declarar que esa función es asíncrona. Una función marcada comoasyncdevuelve automáticamente una promesa.await: Se utiliza dentro de una funciónasyncpara pausar la ejecución de la función hasta que una promesa se resuelva. El código se detiene en la líneaawaithasta que la promesa se resuelve, luego continúa con el valor resuelto.
Ejemplo de uso de async y await con la PokeAPI
Supongamos que queremos obtener información sobre un Pokémon, como Pikachu, de la PokeAPI. Usaremos async y await para manejar la solicitud de una manera más sencilla y clara.
1// Declaramos una función asíncrona usando async 2async function obtenerPokemon(nombre) { 3 try { 4 // Usamos await para esperar a que la promesa de fetch se resuelva 5 let respuesta = await fetch(`https://pokeapi.co/api/v2/pokemon/${nombre}`); 6 7 // Convertimos la respuesta a JSON (también espera a que la promesa se resuelva) 8 let pokemon = await respuesta.json(); 9 10 // Trabajamos con los datos del Pokémon 11 console.log("Nombre:", pokemon.name); 12 console.log("Altura:", pokemon.height); 13 console.log("Peso:", pokemon.weight); 14 } catch (error) { 15 // Manejamos cualquier error que ocurra durante la solicitud 16 console.error("Error al obtener los datos:", error); 17 } 18} 19 20// Llamamos a la función para obtener los datos de Pikachu 21obtenerPokemon("pikachu");
En este ejemplo:
async function obtenerPokemon(nombre): Esta función se declara como asíncrona usandoasync, lo que significa que puede usarawaitdentro de su cuerpo.await fetch(...): Se usaawaitpara esperar a que la promesa devuelta porfetch(la solicitud HTTP) se resuelva. Esto significa que el código no continuará hasta que se reciba la respuesta.await respuesta.json(): Después de obtener la respuesta, se convierte a JSON usandoawait, lo que garantiza que el código espere a que los datos se procesen antes de continuar.try...catch: Se utiliza para manejar cualquier error que pueda ocurrir durante la solicitud, como problemas de red.
Resultado:
Cuando llamas a obtenerPokemon("pikachu"), verás algo como esto en la consola si la solicitud es exitosa:
Nombre: pikachu
Altura: 4
Peso: 60
Ventajas de async y await
- Código más legible: El uso de
asyncyawaithace que el código asíncrono se parezca mucho más al código síncrono, lo que facilita su lectura y mantenimiento. - Manejo de errores simplificado: Puedes manejar errores en el código asíncrono usando
try...catch, lo que es más claro que manejar errores con promesas ycatch. - Ejecución secuencial: Puedes escribir código que espera a que una promesa se resuelva antes de continuar, lo que ayuda a garantizar que las operaciones ocurran en el orden correcto.
Resumen
asyncse utiliza para declarar funciones asíncronas, que siempre devuelven una promesa.awaitse utiliza dentro de funcionesasyncpara pausar la ejecución del código hasta que una promesa se resuelva.- En el ejemplo con la PokeAPI, usamos
asyncyawaitpara realizar una solicitud a la API y manejar los datos de manera sencilla y clara.
El uso de async y await en JavaScript es una práctica común que simplifica enormemente la escritura y comprensión de código asíncrono, haciendo que sea más fácil trabajar con operaciones como solicitudes a APIs.
- Loading...