viernes, 28 de noviembre de 2014

Como Manejar Funciones y CallBack en Node.js

Manejo de funciones y CallBack en Node.js


Salim A. Castellanos R.
salimsalim4@gmail.com
@SCastellanosR

Node como ya habíamos comentado en un lenguaje orientado a eventos, asíncrono y que además maneja una bucle de eventos, este bucle es por definición secuencial; Y cuando en esa iteración llega a un evento que tiene que emitirse llama a su CallBack. Todo esto hace que sea imperativo manejar y entender el funcionamiento de las funciones y el CallBack en Node.js.

Un CallBack es simplemente una función que tú puedes pasar como parametro dentro de otra función, y esta funcion se ejecuta al suceder solo el evento indicado, a esto se debe que Node.js es un entorno de programación orientado a eventos.

En Node una función se empieza a definir con la palabra reservada ‘function’, y después el nombre de la función. No se especifica si va a devolver algún tipo de variable, y algo muy particular y esto tiene que ver con que básicamente Node es javascript, en Node una función puede contener un parámetro que a su vez es una función. Estas funciones como parámetro se pueden pasar de dos formas, de forma explícita, ósea diciendo el nombre de la función, o de forma anomia, que consiste en desarrollar la función dentro del espacio que como parámetro le corresponde, es esto lo que le permite al lenguaje ejecutar el código solo cuando la función principal es emitida.

Entendamos esto con algunos ejemplos: Yo voy a estar escribiendo sobre el archivo ‘funciones.js’.

// Esta función escribe en consola, el texto pasado 
// como parámetro a la función decir




function decir(palabra){

               console.log(palabra);

}



// Ahora vamos a llamar a la función y pasémosle
// un texto y veamos cómo se escribe en consola.

decir(“Hola Mundo.”);

Desde la consola nos ubicamos en el directorio  donde esta nuestro archivo y ejecutamos,

>  node funciones.js

En consola nos debió aparecer ‘Hola Mundo.’, Si quieres hacer esto directamente desde NetBeans como IDE, te recomiendo la siguiente entrada:

Ahora vamos a crear una función que va a actuar como Router o Manejador de nuestras funciones, le pasaremos como primer parámetro el nombre de nuestra función a ejecutar, y como segundo parámetro, el parámetro de la función que queremos ejecutar.

// El parámetro ‘algunaFuncion’, es quien tiene dentro 
// de el, nombre de la función que queremos ejecutar

// el parámetro ‘valor’, es lo que le pasamos como 
// parámetro a la función que en realidad

// Queremos ejecutar.


function ejecutar(algunaFuncion, valor) {

    algunaFuncion(valor);

}



// Hagamos una prueba de esto:

// Este es un ejemplo de cómo se pasa una 
// función explícitamente diciendo su nombre

ejecutar(decir, "Hola Mundo 2.");1


Si ejecutamos nuestro archivo y no hemos borrado nada, nos debería salir en consola:

> Hola Mundo.
Hola Mundo 2.

Como podemos ver lo que hicimos fue ejecutar la función ‘decir’, dos veces, pero de manera diferente. Ahora veamos cómo podemos obtener el mismo resultado pero pasando una funcion anónima.

Modifiquemos el método ejecutar para que quede de la siguiente manera.

// Lo que se hace es desarrollar lo que era la 
// función ‘decir’, pero dentro de la  
// función ‘ejecutar’ como parámetro. 
//  Si ejecutamos deberíamos obtener el mismo resultado.



ejecutar(function (palabra) {

    console.log(palabra);

}, "Hola Mundo 2.");


Con esto terminamos la primera entrada de funciones, en la proxima entrada hablaremos de como crear nuestra primera pagina web y el manejo y creacion de nuestros propios modulos.



Otros Articulos:

  • http://nodejs-español.blogspot.com/2014/11/que-es-nodejs.html
  • http://nodejs-español.blogspot.com/2014/11/integracion-de-nodejs-y-netbeans.html
  • http://nodejs-español.blogspot.com/2014/11/instalacion-de-nodejs.html
  • http://nodejs-español.blogspot.com/2014/11/manejo-de-funciones-y-callback-en-nodejs.html
  • http://xn--nodejs-espaol-skb.blogspot.com/2014/11/funciones-y-programacion-asincrona-en.html



No hay comentarios:

Publicar un comentario