October 18, 2022 8:40 AM (CDT)
Aportes
Asincronismo |[15. **Funciones asíncronas**](<https://pogolo.notion.site/15-Funciones-as-ncronas-4b9764c92cc44c57b5dd469f1b2a42e5>)
<aside> 💡 Las palabras reservadas Async / Await, que son parte del concepto del asincronismo. Ya lo vimos anteriormente con las promesas. Async / Await = Funciones Asíncronas
</aside>
<aside> 💡 Honestamente este apunte esta algo revuelto, yo ya le entendí, pero no se como ordenarlo. Irme a la clase XMLHTTPRequest y leer los comentarios me ayudo a entender un poco sobre (APIs) y por consiguiente saber donde es vital la asincronía (creo) y etc.
</aside>
En ECMAScript 2017 o ES8 fue añadida una nueva forma de manejar el asincronismo en JavaScript mediante Funciones Asíncronas: (funciones que retornan una promesa).
Dado que JavaScript es un lenguaje síncrono, surgieron las funciones asíncronas, estas son usadas para poner las promesas en segundo plano, para esperar que estas sean ejecutadas. Dado que las promesas tardan un poco mas en ejecutarse. .
Este tipo de funciones se suelen utilizar mucho sobre todo para hacer peticiones a servidores, dado que al no ser instantáneo es necesario crear un hilo, o nuevo proceso de ejecución.
De esta manera no se interrumpe el flujo de ejecución principal de tu aplicación y tu aplicación sigue funcionando mientras llega esa respuesta del servidor.
Declaración de funciones asíncronas.
La función asíncrona se crea mediante la palabra reservada async
y retorna una promesa.
async function asyncFunctionName () {...} //Función Declarativa
//Me falta una función anómnima | No la encuentro
const asyncFunctionName = async () => { ... } //Función Flecha
**Para identificar una función asíncrona**.
Dentro de una función asíncrona, las palabras try / catch
sirven para manejar (el rumbo del resultado de una promesa) si la promesa ha sido resuelta (try) o si fue rechazada (catch).
Al parecer catch(e);
Es el e
de else
de la promesa (la que de por si necesitas para ejecutar una fucntion async
) .
El resolve y reject son las “direcciones” de una promesa.
El try y catch son las “direcciones” en una función asíncrona.
async function asyncFunctionName () {
try {
const response = await promesa()
return response }
catch (error) {
return error
}
}
const buyIceCream = async (money) => { /*FUNCIÓN ASÍNCRONA*/
try{
console.log('Bienvenido a mundo Helados!');
const result = await prepareIceCream(money);
console.log(result);
console.log('Gracias por tu compra!');
} catch(e) {
console.log(e);
}
}
La palabra reservada await
significa que espera hasta que una promesa sea resuelta y solo funciona dentro de una función asíncrona.