您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關AngularJs定時器$interval和$timeout怎么用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
$interval
window.setInterval的Angular包裝形式。Fn是每次延遲時間后被執行的函數。
間隔函數的返回值是一個承諾。這個承諾將在每個間隔刻度被通知,并且到達規定迭代次數后被取消,如果迭代次數未定義,則無限制的執行。通知的值將是運行的迭代次數。取消一個間隔,調用$intreval.cancel(promise)。
備注:當你執行完這項服務后應該把它銷毀。特別是當controller或者directive元素被銷毀時而$interval未被銷毀。你應該考慮到在適當的時候取消interval事件。
使用:$interval(fn,delay,[count],[invokeApply],[Pass]);
fn:一個將被反復執行的函數。
delay:每次調用的間隔毫秒數值。
count:循環次數的數值,如果沒設置,則無限制循環。
invokeApply:如果設置為false,則避開臟值檢查,否則將調用$apply。
Pass:函數的附加參數。
方法:
cancel(promise);
取消與承諾相關聯的任務。
promise:$interval函數的返回值。
使用代碼:
(function () { angular.module("Demo", []) .controller("testCtrl",["$interval",testCtrl]); function testCtrl($interval){ var toDo = function () { console.log("Hello World"); }; $interval(toDo, 3000, 10); }; }());
$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函數返回的承諾。
(function () { angular.module("Demo", []) .controller("testCtrl",["$timeout",testCtrl]); function testCtrl($timeout){ var toDo = function () { console.log("Hello World"); }; $timeout(toDo,5000) }; }());
大致使用方法可以和原生js的setInterval和setTimeout那樣使用,一些使用小技巧可以用在瀏覽器單線程的事件執行方面...
感謝各位的閱讀!關于“AngularJs定時器$interval和$timeout怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。