$http con Karma y Angular
$http con Karma y Angular
¡INSCRÍBETE A CUALQUIER CURSO CON UN 50% DE DESCUENTO PARA NUEVOS CLIENTES!

A partir de la versión 1.2 de angularjs tenemos disponible $interval, el cuál nos sirve para ejecutar una función específica cada n milisegundos, y será ejecutada hasta que interval no sea cancelado.

$interval puede ser útil para, por ejemplo, hacer una consulta que refresque una página cada n segundos, así, mientras estemos en esa página el contenido se irá actualizando de forma transparente para el usuario.

Lo más importante a tener en cuenta cuando trabajamos con interval es cancelar el proceso, si no lo hacemos interval seguirá ejecutándose automáticamente, para conseguir esto lo mejor es asignar interval a una variable y poder detener el proceso a través de dicha variable con la función cancel.

Vamos a crear un sencillo ejemplo donde tendremos un servicio que nos devolverá los datos de un .json, tendremos dos controladores, uno donde funcionará interval y otro donde no, ya que lo cancelaremos con la función cancel.

Así que crea un proyecto, un index.html y añade el siguiente código.


Ahora crea los directorios scripts y templates, y dentro de scripts crea el archivo data.json.


Y seguido crea el archivo app.js con el siguiente código.


Todo debe sonarnos, lo único nuevo es el controlador homeCtrl al que le inyectamos $interval, de esta forma ya podemos empezar a utilizarlo, creamos la función posts con el $scope, creamos el $interval asociado a la variable promise y le decimos que en el $scope.on(“$destroy”), es decir, cuando el $scope sea eliminado se cancele el proceso iniciado por $interval.

Crea los dos archivos dentro de templates home.html y profile.html y añade a cada uno en el mismo orden el siguiente código.


Si te fijas, con ng-init le decimos que cuando se inicie este controlador ejecute la función posts. Si abres la consola y miras la network verás que mientras estés en la home cada 5 segundos se ejecutará una petición contra el archivo data.json, pero cuando cambies a profile esa petición ya no se ejecutará.

Pues eso es todo lo que debemos conocer sobre interval, sirve para ejecutar una determinada función cada n milisegundos y siempre debemos acordarnos de cancelar el proceso.