1.相比較於JS中setTimeInterval和setTimeout,angularJS中經過
$timeout //實現的是延遲執行
$interval //實現的是定時器的效果
咱們分別來看這兩個服務web
(1)timeout
timeout至關於JS原生裏面的延遲執行,不一樣的是該服務的函數返回的是一個promise對象。promise
var timer=$timeout(function(){
console.log('hello world')
},2000); //該函數延遲2秒執行
timer.then(function(){ console.log('建立成功')},
function(){ console.log('建立不成功')};
(2)intervalsvg
interval與timeout服務大同小異,建立定時器返回的也是一個promise對象。函數
var timer=$interval(function(){
console.log('hello world')
},2000); //間隔2秒定時執行
timer.then(function(){ console.log('建立成功')},
function(){ console.log('建立不成功')};
2.如何移除定時器atom
在angularJSo中,特別是在頁面切換或者說是路由切換的時候,咱們須要移除響應的定時器,咱們能夠經過
$scope.$on('destroy',function(){
$interval.cancel($scope.timer);
}) //在控制器裏,添加$on函數