« Voltar
em frontend angularjs

Diferença entre $timeout e $interval.

No post que fiz ontem falei sobre como podemos utilizar o $timeout para pedir que uma função seja executada após um tempo:

meuApp.controller('AlgumController',  
function($scope, $timeout) {  
    //Faz uma chamada para FuncaoInutil depois de 3 segundos
    $timeout(FuncaoInutil, 3000);
});

function FuncaoInutil() {  
    console.log("imprime um texto);
}

Agora, pode ser que eu queira executar essa função depois de 3 segundos, mas não apenas uma vez. Quero que meu código execute essa função a cada 3 segundos, sem parar.

Nesse caso, basta usar o $interval ao invés do $timeout:

meuApp.controller('AlgumController',  
function($scope, $interval) {  
    //Faz uma chamada para FuncaoInutil depois de 3 segundos, repetidamente
    $interval(FuncaoInutil, 3000);
});

function FuncaoInutil() {  
    console.log("imprime um texto);
}

Lembrando que se você modificar algo do $scope dentro da função que chamar, tem que chamar $scope.apply() (:

comments powered by Disqus