Сервис $timeout

Последнее обновление: 19.02.2016

Cервис $timeout выполняет некоторые действия по истечению определенного промежутка времени. Однако не следует воспринимать этот сервис как аналог стандартной функции javascript setTimeout, это разные вещи, хотя сходство между ними в функциональности есть. Например, сделаем так, чтобы контроллер из прошлой темы загружал данные через некоторый период:

questApp.controller('QuestionController', 
    function QuestionController($scope, dataService, $timeout){
     
	 var promiseObj = $timeout(function(){
            return dataService.getData();
        }, 3000);
         
        promiseObj.then(function(value) { $scope.question=value; });
		
        $scope.voteUp = function (answer){
            answer.rate++;
        };
        $scope.voteDown = function (answer){
            answer.rate--;
        };
    }
)

Здесь функция, определенная в первом параметре, выполняется через промежуток времени, указанный во втором параметре - то есть через 3 секунды.

var promiseObj = $timeout(function(){
    return dataService.getData();
}, 3000);

На выходе у нас получается объект promiseObj, который мы затем можем использовать. Например, если нам надо остановить выполнение сервиса $timeout, то мы можем вызвать следующий метод: $timeout.cancel(promiseObj)

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850