El servicio de $timeout es como el método setTimeout() de JavaScript. La principal diferencia , a parte de que es un servicio, es que al igual que 3.2 $http se actualiza la vista al actualizar el modelo desde $timeout.
La función $timeout soporta 3 parámetros:
Al igual que setTimeout() se llama una única vez.
Veamos ahora un simple ejemplo de este servicio .
<!DOCTYPE html>
<html ng-app="app">
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js"></script>
<script src="script.js"></script>
</head>
<body ng-controller="PruebaController">
¿Se ha producido el evento? {{producidoEvento}}
</body>
</html>
producidoEvento la cual indicará si se ha producido el evento de $timeout.
var app=angular.module("app",[]);
app.controller("PruebaController",['$scope','$timeout',function($scope,$timeout) {
$scope.producidoEvento="NO";
$timeout(function() {
$scope.producidoEvento="SIIIIII";
},3000);
}]);
$timeout$timeout y se le pasa nuestra función.$scope.producidoEvento y se actualiza automáticamente la vista.