Clase


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>

Funciones Asíncronas

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.

Tipos Funciones Asíncronas

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

Try / Catch

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.