¿Qué son los eventos de la aplicación?
Los eventos en una aplicación son todas aquellas acciones a las que podemos responder de alguna manera.
En Node existen 2 tipos de eventos, eventos del sistema y eventos personalizados.
- Eventos del sistema
- Eventos personalizados
¿Que son los eventos del sistema?
Los eventos del sistema son los eventos que provienen del Core de Node, este Core esta escrito en C++.
¿Que son los eventos Personalizados?
Los eventos personalizados provienen del Core de Javascript de Node, y lidian con los eventos que podemos crear por nosotros mismos utilizando un Emisor de Eventos (Event Emitter).
¿Qué es un manejador de eventos?
Seguramente has revisado la documentación de la api de Nodejs, en esta ocasión vamos a utilizar nuestro manejador de eventos utilizando el módulo events.
Ejemplo de un programa para controlar un robot en Nodejs
Supongamos que deseamos crear un robot, este robot tiene un control remoto que tiene las acciones.
- adelante
- atrás
- saludar
// cargamos la librería de eventos
var eventos = require("events");
// creamos un nuevo manejador de eventos
var control_remoto = new eventos();
// cuando presionamos adelante
control_remoto.on("adelante", function () {
console.log("El robot camina hacia el frente");
});
// cuando presionamos atrás
control_remoto.on("atras", function () {
console.log("El robot camina hacia atras");
});
// cuando ordenamos saludar
// el robot se detiene
control_remoto.on("saludar", function () {
console.log("Detener robot.");
});
// el robot saluda
control_remoto.on("saludar", function () {
console.log('El robot dice "Hola, soy Genialo"!');
});
// utilizar controles
control_remoto.emit("adelante");
control_remoto.emit("atras");
control_remoto.emit("saludar");
Nuestro manejador de eventos en este caso es un control remoto, como podemos ver asignamos a cada uno de los controles un listener (vigía de un evento). Algunos eventos como el saludar tienen relacionados mas de un listener, es importante que entiendas que estos listeners son funciones y que estas funciones se invocan según el orden fueron asociadas al evento.
Node basa su programación en eventos, esto quiere decir que podemos escribir nuestro código de arriba a abajo y las sentencias no se ejecutaran de manera procedural, sino que muchos de estos bloques estarán esperando que cierto evento suceda para que sus listener asociados se disparen.