Promesas II: ¿Qué es un callback?
Los callbacks son funciones de primera clase. Esto significa que tienen características de primera clase, como poder pasarse a otras funciones. Hubo un tiempo en que los callbacks se usaban para gestionar operaciones asíncronas, pero necesitábamos algo mejor debido a algunas limitaciones (como los problemas con los callbacks anidados).
Aquí tienes un ejemplo sencillo de un callback:
function asyncFunc(cb) {
let result = ""
// After some time the result of an async opertion comes back and is put in the "result" variable. We'll use a string for this example.
result = "hello"
cb(result)
}
function callback(str) {
console.log(str)
}
asyncFunc(callback)
console.log("goodbye")
// goodbye
// hello"goodbye" aparece antes que "hello" porque la operación asíncrona en asyncFunc() es no bloqueante, lo que significa que se deja de lado hasta que termina, pero mientras tanto seguimos adelante y llamamos a la siguiente función.
Desafío
- Corrige
anotherFunc()para que las llamadas a esta cambien la variable doc a bye. - Mantén el
setTimeouten 100ms y no cambies la función callback ni la variable doc.
Notas
Consulta la pestaña Resources para obtener más información sobre callbacks.