El 14 de septiembre de 2017, publicamos una versión revisada de nuestra Política de privacidad. Tu uso continuado de video2brain.com significa que aceptas este documento revisado, por lo que te recomendamos que dediques unos minutos a leerlo y comprenderlo.

JavaScript esencial

Entendiendo los callbacks

Prueba ahora LinkedIn Learning sin cargo y sin compromiso.

Prueba gratis Mostrar modalidades de suscripción
Siempre que usamos una función, buscamos ejecutar ciertas acciones como consecuencia del resultado obtenido en cada función. Aprende cómo usar los callbacks para que tu aplicación reaccione y ejecute acciones según el resultado de una función.
05:05

Transcripción

Hemos aprendido que una función puede recibir parámetros de distintos tipos: objetos, arreglos, cadenas de texto, números, valores "booleanos". Pero ¿qué crees? También puede recibir funciones como parámetros. Espera, todavía no enloquezcas. De hecho, recibir funciones como parámetros es algo muy común y de pronto lo vas a estar utilizando y ni cuenta te vas a dar, puesto que los "callbacks" hacen mucho juego con las funciones anónimas. Vamos a crear un "callback" en esta situación. Después del parámetro'datoB'que existe en la función'calcular' vamos a escribir la palabra'sumarCB'. Yo estoy agregando la palabra'CB' para poder identificar un "callback"; no quiere decir que esta sea la sintaxis, tú puedes poner el nombre que tú quieras. La recomendación es: agrégale un CB al final o al inicio para que puedes identificarlo sin ningún problema. Después de esto, yo voy a utilizar esta misma función, 'sumarCB', y voy a enviarle el valor de'suma'. Aquí puede ser un tanto confuso, pero ¿qué pasa? Cuando yo estoy invocando la función'calcular' estoy trabajando con esta estructura que recibe un'datoA', que es el número 2, un'datoB', que es el número 3, y después recibe un "callback". ¿Pero qué es este "callback"? Como habíamos visto, es una función. Entonces, ya sea que yo tenga declarada una función previamente y solamente escriba el nombre o que pueda utilizar una función anónima, aquí entonces yo tengo una función que va a recibir un resultado. ¿Por qué recibe un resultado? Si te das cuenta, estamos haciendo coincidir esta función con este dato y lo único que hacemos es retornar el valor. ¿Esto qué quiere decir? Que un "callback" está esperando una respuesta o una llamada de regreso. Así, cuando yo estoy mandando este valor 2 y este valor 3 se reciben como parámetros normales. Pero, posterior a esto, yo tengo el valor de una función. Esta función es la que va a recibir los datos que tenemos de este lado. Así, entonces, si yo necesito saber cuál es el resultado de esta suma, voy a mandarlo a consola, actualizo mi navegador y vemos que ahora dice: "Suma: 5". ¿Qué sucedió? Yo invoqué la función'calcular', parámetro 2, parámetro 3 y después envié la función. Esta función no tiene ningún nombre, no tiene absolutamente nada, pero estamos correspondiendo a la forma y estructura en que está declarada la función'calcular', que aquí recibe una función llamada'sumarCB' y esta recibe como parámetro el valor guardado en'suma'. Por eso yo tengo que recibirlo de este lado, es decir, estoy haciendo como si fuera un "match". Al hacer este tipo de "match" en el "callback", entonces, tengo una respuesta. Pero ¿qué crees? No solamente puede recibir un "callback", puede recibir N cantidad. Aquí, en este caso, yo estoy agregando una opción llamada'restarCB'. Esta opción'restar' simplemente lo que va a hacer es enviar el resultado de la resta directamente a la invocación de la función. Actualizamos nuestro navegador y por ahora me está indicando un mensaje que dice: "restarCB is not a function". ¿Qué tenemos que hacer? Bueno, pues simple y sencillo: tendríamos que declarar después de este parámetro otra función. Aquí, entonces, voy a copiar esto nuevamente y en lugar de sumar estaremos haciendo una operación de resta. Como podemos revisar, una vez que actualizamos nuestro navegador tenemos aquí la opción que dice: "Resta -1" y "Suma 5". Así podemos darnos cuenta de que este "callback" funcionó. Pero un punto muy importante: los "callbacks" generalmente me ayudan a controlar procesos asíncronos, es decir, en una función yo puedo hacer la invocación de muchos procesos y en otra función puedo hacer otra invocación, ya sea de otros tantos u otros pocos procesos. Así, entonces, se ejecuta una función y la otra función también se puede ejecutar y no importa cuál vaya terminando porque de cualquier forma podemos estar recuperando la información. Revisemos una vez más la firma de esta función, la cual tiene esta estructura y por aquí lo voy a comentar para evitar algún problema. 'Calcular', que es el nombre de la función, valor 1, valor 2 y después recibe una función y al final otra función. ¿Qué quiere decir esto? Que yo estoy enviando este primer dato como el tercer parámetro y este cuarto dato como el cuarto parámetro. Así ya pudiste crear tus propios "callbacks", y verás como muy pronto estarás también utilizando "callbacks" que te permiten trabajar correctamente con distintas funciones. De hecho, si trabajas con jQuery o vas a comenzar a trabajar con jQuery te encontrarás bajo esta situación muchísimas veces.

JavaScript esencial

Aprende y conoce JavaScript empezando por entender sus conceptos más básicos y esenciales, pero considerando en todo momento la nueva especificación del lenguaje ES6.

5:26 horas (90 Videos)
Actualmente no hay comentarios.
 
Software:
Fecha de publicación:12/09/2017

Este curso video2brain está disponible como descarga y para ser visualizado online. ¡Pero no hace falta que decidas entre las dos opciones! Al comprar el curso, disfrutarás de ambas posibilidades.

La descarga te permite ver las lecciones sin estar conectado/a a internet y supone una navegación fácil y ágil entre capítulo y capítulo. Si vas a trabajar en diferentes ordenadores o si no quieres descargarte el curso completo, entra en la web con tus datos de acceso y disfruta directamente de tus vídeos online. Te deseamos que disfrutes de este curso y te resulte de mucha utilidad.

Estamos a tu disposición si tienes cualquier tipo de duda o pregunta.