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 | |
Comentarios
Publicar un comentario