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 setTimeout en 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.