angularjs 中的setTimeout(),setInterval() / $interval 和 $timeout

$intervalpromise

window.setInterval的Angular包裝形式。Fn是每次延遲時間後被執行的函數。app

間隔函數的返回值是一個承諾。這個承諾將在每一個間隔刻度被通知,而且到達規定迭代次數後被取消,若是迭代次數未定義,則無限制的執行。通知的值將是運行的迭代次數。取消一個間隔,調用$intreval.cancel(promise)。函數

備註:當你執行完這項服務後應該把它銷燬。特別是當controller或者directive元素被銷燬時而$interval未被銷燬。你應該考慮到在適當的時候取消interval事件。spa

使用:$interval(fn,delay,[count],[invokeApply],[Pass]);事件

fn:一個將被反覆執行的函數。io

delay:每次調用的間隔毫秒數值。function

count:循環次數的數值,若是沒設置,則無限制循環。exception

invokeApply:若是設置爲false,則避開髒值檢查,不然將調用$apply。循環

Pass:函數的附加參數。方法

方法

cancel(promise);

取消與承諾相關聯的任務。

promise:$interval函數的返回值。

myApp.controller('firstController',function($scope,$interval,$timeout){//須要依賴$interval

var stop = $interval(function(){
consoel.log("aaaaaaaaaaaa");
}, 100);

$interval.cancel(stop)

})

$timeout

window.setTimeout的Angular包裝形式。Fn函數包裝成一個try/catch塊,表明$exceptionHandler服務裏的任何異常。

timeout函數的返回值是一個promise,當到達設置的超時時間時,這個承諾將被解決,並執行timeout函數。

須要取消timeout,須要調用$timeout.cancel(promise);

使用: $timeout(fn,[delay],[invokeApply]);

fn:一個將被延遲執行的函數。

delay:延遲的時間(毫秒)。

invokeApply:若是設置爲false,則跳過髒值檢測,不然將調用$apply。

方法

cancel(promise);

取消與承諾相關聯的任務。這個的結果是,承諾將被以摒棄方式來解決。

promise:$timeout函數返回的承諾。

相關文章
相關標籤/搜索