[ingresar]

Que es una Clausura?

  1. Que es una Clausura (Closure)?
  2. Variables y Valores
  3. Definiendo Funciones
  4. Efectos Secundarios
  5. Las Funciones son Valores
  6. Retornando Funciones
  7. Alcance de Función
  8. Funciones Anidadas
  9. Clausuras con Estado
  10. Datos Privados
  11. Callbacks Asincrónicos
  12. Pasando Continuación

Pasando Continuación

Una continuación es una función callback que representa que hacer después. Hacemos una llamada a una continuación para continuar ejecutando instrucciones, más que para retornar desde una función. Si convertís totalmente tu programa para que nunca use el return y sólo llamas a continuaciones, has transformado tu programa en el estilo pasando-continuatión. En el siguiente ejemplo se muestra una función que agrega uno a un número, en la forma normal y al estilo pasando-continuatión.

En un estilo pasando-continuatión, toda funcion recibe un argumento extra retorno el cual es llamado en vez de retornar. Nunca nada se retorna! Algo loco.

No estamos limitados a sólo una continuación. Supongamos que cada función recibe una continuación exito y fracaso. La función agregarUno puede quedar asi:

En el siguiente ejemplo se muestra una operacion en secuencia secC. La función secC recibe dos funciones fC y gC, incluídas las continuaciones exito y fracaso. Las funciones fC y gC reciben también las continuaciones exito y fracaso, las últimas dos no manipulan ningun dato. El operador secC ejecuta fC y si fue concretada con exito continua. Si fC fracasa, entonces ejecuta gC y continua.

Este codigo puede ser mejorado. Por ejemplo, podemos llamar directamente a exito en vez de crear una función f_exito. Esta sería una version simplicada.

Definir una función llamada ambasC similar a secC que reciba las funciones fC y gC y las continuaciones exito y fracaso. Ambas funciones fC y gC sólo reciben las continuaciones exito y fracaso. Tu función ambasC deberia llamar a ambas fC y gC sin importar, pero solo llamar a exito si ambas resultan en exito, y a fracaso si ambas resultan en fracaso. No lo olvides, tu función nunca retornará!

1:1

about noticias inicio