0% encontró este documento útil (0 votos)
17 vistas10 páginas

Programación Asíncrona

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
17 vistas10 páginas

Programación Asíncrona

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 10

Programación asíncrona

• Es la capacidad del lenguaje Java Script de realizar operaciones sin


bloquear la ejecución del resto de código
• Ciertas tareas se realicen en un segundo plano, mientras que el
programa principal sigue ejecutándose. (Las operaciones se ejecutan
simultáneamente)
• En un entorno síncrono las operaciones se ejecutan una a una en
secuencia y el programa espera a que cada operación se complete
antes de pasar a la siguiente.
• Controlar la asincronía es esencial para garantizar que cada operación
se complete para pasar a la siguiente.
Programación sincrónica
• Creamos una función para saludar

const nombre = "Marcela Garcés"


const saludar = `¡Hola ${nombre}!`
console.log(saludar)

• Observamos que se ejecuta línea a línea en un el orden que esta escrita


, java script espera a que la línea termine el trabajo antes de pasar a la
siguiente.
console.log("Inicio");

function tareaSincrona() {
console.log("Tarea Sincrónica");
}

tareaSincrona();
console.log("Fin");
Programación asíncrona
• Ahora vamos a adicionar una función
function saludo (nombre){ // función que devuelve el texto que se
tiene nombre y saludo
return `!Hola! ${nombre}`
}
const nombre = "Marcela Garcés"
const saludar = saludo (nombre) // llama una funcion saludo y se le
apsa como parametro el nombe
console.log(saludar)

• A pesar de que la función está declarada en la primera línea no se le invoca o se


le llama hasta la línea 5, que es donde se llama la función saludo.
1. Callbacks
Una de las formas más antiguas y comunes de manejar operaciones asincrónicas es mediante el uso de
funciones de callback:

console.log("Inicio");

function tareaAsincrona(callback) {
setTimeout(() => {
console.log("Tarea Asincrónica");
callback();
}, 1000);
}

tareaAsincrona(() => {
console.log("Fin");
});

En este ejemplo, setTimeout simula una operación asincrónica


(como una solicitud de red) y callback es una función que se ejecuta después
de que la tarea asincrónica se completa
2. Promesas
Las promesas proporcionan una forma más estructurada de manejar asincronía y permiten encadenar
múltiples operaciones:

console.log("Inicio");

function tareaAsincrona() {
return new Promise((resolve) => {
setTimeout(() => {
console.log("Tarea Asincrónica");
resolve();
}, 1000);
});
}

tareaAsincrona().then(() => {
console.log("Fin");
});
Las promesas representan un valor que puede estar disponible ahora, en el futuro o nunca, y
proporcionan métodos .then() y .catch() para manejar el resultado o el error de la operación asincrónica.
3. Async/Await
Introducido en ES2017, async/await permite escribir código asincrónico de una manera que se asemeja
a la sincronía, pero con la funcionalidad asincrónica. async marca una función como asincrónica, y await
se usa dentro de una función async para esperar el resultado de una promesa:

console.log("Inicio");

async function tareaAsincrona() {


return new Promise((resolve) => {
setTimeout(() => {
console.log("Tarea Asincrónica"); Aquí, await pausa la ejecución de la función main hasta
resolve(); que la promesa de tarea Asincrona se resuelva. La salida
}, 1000); será la misma que en los ejemplos anteriores.
});
}

async function main() {


await tareaAsincrona();
console.log("Fin");
}

main();
• A veces se presentan dificultades en la sincronía con las funciones
síncronas de larga duración, es por esto que se deben tener en cuenta 3
pasos para que nuestro programa cumpla con los siguientes pasos:

1. Que inicie con una operación de larga duración llamando a una


función.
2. Haga que esa función inicie la operación y regrese inmediatamente,
para que el programa pueda seguir respondiendo a otros eventos.
3. Notifique el resultado de la operación cuando esta se complete.

También podría gustarte