This a simple example of queues using setIterval. This is a best practices for iterator object array.
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
$scope.queue = [];
$scope.addQueue = function(){
$scope.queue.push({
name : $scope.name,
money:$scope.money
});
}
$scope.tratarFila = function(){
if($scope.queue.length === 0){
return false;
}
var indice = $scope.queue.filter(function(item){
return item.money > 0;
});
if(indice.length === 0){
return false;
}
var index = Math.floor(Math.random() * indice.length);
var fila = indice[index];
if(fila.money > 0){
fila.money--;
$scope.$apply();
}
};
setInterval(function(){
$scope.tratarFila();
}, 50);
}
<div ng-controller="MyCtrl">
<input ng-model="name" placeholder="nome"/>
<input ng-model="money" placeholder="money"/>
<button ng-click="addQueue()">
adicionar user
</button>
<hr/>
<ul>
<li ng-repeat="q in queue">{{q.name}} - {{q.money}}</li>
</ul>
</ul>
</div>
http://jsfiddle.net/HB7LU/22825/