lunes, 30 de junio de 2014

Node.js - Callbacks





1 Callbacks y otras yerbas

En el mundo de Node.js, la lógica se maneja principalmente en forma asíncrona, una diferencia interesante contra otros lenguajes a los que estaba acostumbrado. Donde todo se ejecuta en forma secuencial por default.
Otro punto fue el uso y paso de parámetros, algo que me llamó la atención.
Node maneja dos tipos de formas para la lógica de respuestas en los programas:

  • Callbacks.
  • Event listeners.

El último no se explicará en este artículo, por lo cual se proseguirá con los callbacks.
Los callbacks son funciones para manejar resultados de procesos. Por ejemplo, luego de una lectura de bases de datos, defino un callback para realizar cálculos con las filas recuperadas de la base de datos.
O sea, ejecuto una llamada a una función cualquiera, la llamada devuelve valores a la función callback, dentro de la función callback puedo hacer algo.

A continuación ejemplos.

1.1 Ejemplo 1 – Devolver un valor usando funciones callback

Llamada a función check, recibe como parámetros los valores 1 y 2.
A la vuelta de la función check, se puede procesar el resultado que ha sido colocado en el argumento resultadoCheck de la función callback.

check(1,2,function(resultadoCheck){
 console.log("A
la vuelta de check().resultadoChec=%s",resultadoCheck);
}); 

Dentro de la función check, se debe devolver valores a una función local declarada como parámetro.

function check(req,hash, fn){
 
 console.log("Ejecutando check(%s,%s,
fn)",req,hash); 
 //envio del resultado  
 fn(true);
}; 

1.2 Ejemplo 2 – Devolver varios valores usando funciones callback

El siguiente ejemplo, devuelve dos valores utilizando callback. El primer valor, es una variable que simula ser un estado. El segundo valor, es una variable que simula ser resultados.
//...
var req=0;
operacion(1,function(parUno,parDos){ 
 console.log("check() -> Recibiendo
status=%s result=%s",parUno,parDos); 
 console.log("check() -> uso como global
de variable req=%s",req);   
}); 
//...

Aquí viene la definición de la función. Se devuelven valores como si fuera una llamada a una función, pero la función callback es parte de los parámetros.
function operacion(valorEntradaOperacion,fn){
 //simulan ser valores producidos 
 var status="TERMINADO"; 
 var result=2; 
//...
 fn(status,result);
}

1.3 Ejemplo 3 – Integrador con varios casos

Se puede descargar de


https://github.com/freelanceparaguay/nodeJSExamples

































No hay comentarios:

Publicar un comentario