Callbacks
Una función de callback (a veces denominados funciones de retrollamada o funciones callback) es una función que se pasa a otra función como un argumento, que luego se invoca dentro de la función externa para completar algún tipo de rutina o acción.
Ejemplo:
Asincronía con callbacks:
Las funciones callback pueden utilizarse como un primer intento de manejar la asincronía en un programa.
Ejemplo: Lanzar 10 veces el dado o hasta sacar 6
La función lanzarDado() tiene un parámetro iterations que simplemente indica el número de iteraciones que tendrá el bucle (número de lanzamientos del dado). Por otro lado, el segundo parámetro es el callback, por lo que se puede ejecutar en momentos concretos del código. Lo hace en dos ocasiones:
- En el if cuando number es 6 (se detecta como error cuando el resultado es 6). Se pasa un objeto por parámetro que contiene un error, un message (el mensaje de error) y value con el array de resultados obtenidos hasta el 6.
- Tras el for, con dos parámetros. El primero null, ya que en este caso no hay error. El segundo parámetro un objeto que contiene un campo message para un mensaje de tiradas correctas y value con el array de todos los resultados.
Desventajas de los callbacks:
A pesar de ser una forma flexible y potente de controlar la asincronía, que permite realizar múltiples posibilidades, las funciones callbacks tienen ciertas desventajas evidentes:
- El código creado con las funciones es algo caótico.
- A la hora de tener que gestionar la asincronía varias veces en una misma función, al introducir varias funciones con callbacks en su interior, se obtiene una Callback Hell o Pyramid of Doom, lo cual serian muchas funciones callbacks anidadas.