AngularJs定時(shí)器$interval 和 $timeout詳解
$interval
window.setInterval的Angular包裝形式。Fn是每次延遲時(shí)間后被執(zhí)行的函數(shù)。
間隔函數(shù)的返回值是一個(gè)承諾。這個(gè)承諾將在每個(gè)間隔刻度被通知,并且到達(dá)規(guī)定迭代次數(shù)后被取消,如果迭代次數(shù)未定義,則無限制的執(zhí)行。通知的值將是運(yùn)行的迭代次數(shù)。取消一個(gè)間隔,調(diào)用$intreval.cancel(promise)。
備注:當(dāng)你執(zhí)行完這項(xiàng)服務(wù)后應(yīng)該把它銷毀。特別是當(dāng)controller或者directive元素被銷毀時(shí)而$interval未被銷毀。你應(yīng)該考慮到在適當(dāng)?shù)臅r(shí)候取消interval事件。
使用:$interval(fn,delay,[count],[invokeApply],[Pass]);
fn:一個(gè)將被反復(fù)執(zhí)行的函數(shù)。
delay:每次調(diào)用的間隔毫秒數(shù)值。
count:循環(huán)次數(shù)的數(shù)值,如果沒設(shè)置,則無限制循環(huán)。
invokeApply:如果設(shè)置為false,則避開臟值檢查,否則將調(diào)用$apply。
Pass:函數(shù)的附加參數(shù)。
方法:
cancel(promise);
取消與承諾相關(guān)聯(lián)的任務(wù)。
promise:$interval函數(shù)的返回值。
使用代碼:
(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函數(shù)包裝成一個(gè)try/catch塊,代表$exceptionHandler服務(wù)里的任何異常。
timeout函數(shù)的返回值是一個(gè)promise,當(dāng)?shù)竭_(dá)設(shè)置的超時(shí)時(shí)間時(shí),這個(gè)承諾將被解決,并執(zhí)行timeout函數(shù)。
需要取消timeout,需要調(diào)用$timeout.cancel(promise);
使用: $timeout(fn,[delay],[invokeApply]);
fn:一個(gè)將被延遲執(zhí)行的函數(shù)。
delay:延遲的時(shí)間(毫秒)。
invokeApply:如果設(shè)置為false,則跳過臟值檢測,否則將調(diào)用$apply。
方法:
cancel(promise);
取消與承諾相關(guān)聯(lián)的任務(wù)。這個(gè)的結(jié)果是,承諾將被以摒棄方式來解決。
promise:$timeout函數(shù)返回的承諾。
(function () { angular.module("Demo", []) .controller("testCtrl",["$timeout",testCtrl]); function testCtrl($timeout){ var toDo = function () { console.log("Hello World"); }; $timeout(toDo,5000) }; }());
大致使用方法可以和原生js的setInterval和setTimeout那樣使用,一些使用小技巧可以用在瀏覽器單線程的事件執(zhí)行方面...
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Angular.js中定時(shí)器循環(huán)的3種方法總結(jié)
- AngularJS定時(shí)器的使用與移除操作方法【interval與timeout】
- Angularjs 雙向綁定時(shí)字符串的轉(zhuǎn)換成數(shù)字類型的問題
- angularjs定時(shí)任務(wù)的設(shè)置與清除示例
- 詳解Angular.js數(shù)據(jù)綁定時(shí)自動(dòng)轉(zhuǎn)義html標(biāo)簽及內(nèi)容
- AngularJS實(shí)現(xiàn)頁面定時(shí)刷新
- angular2倒計(jì)時(shí)組件使用詳解
- ionic+AngularJs實(shí)現(xiàn)獲取驗(yàn)證碼倒計(jì)時(shí)按鈕
- AngularJS 支付倒計(jì)時(shí)功能實(shí)現(xiàn)思路
- Angular實(shí)現(xiàn)的簡單定時(shí)器功能示例
相關(guān)文章
Angular4實(shí)現(xiàn)動(dòng)態(tài)添加刪除表單輸入框功能
這篇文章主要介紹了Angular4實(shí)現(xiàn)動(dòng)態(tài)添加刪除表單輸入框功能,需要的朋友可以參考下2017-08-08AngularJs導(dǎo)出數(shù)據(jù)到Excel的示例代碼
本篇文章主要介紹了AngularJs導(dǎo)出Excel的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08angularjs自定義ng-model標(biāo)簽的屬性
這篇文章主要介紹了angularjs自定義ng-model標(biāo)簽的屬性的相關(guān)資料,需要的朋友可以參考下2016-01-01Angular實(shí)現(xiàn)下拉框模糊查詢功能示例
這篇文章主要介紹了Angular實(shí)現(xiàn)下拉框模糊查詢功能,涉及AngularJS事件響應(yīng)及字符串查詢等相關(guān)操作技巧,需要的朋友可以參考下2018-01-01AngularJS實(shí)現(xiàn)動(dòng)態(tài)編譯添加到dom中的方法
這篇文章主要介紹了AngularJS實(shí)現(xiàn)動(dòng)態(tài)編譯添加到dom中的方法,結(jié)合實(shí)例形式分析了AngularJS動(dòng)態(tài)編輯構(gòu)建模板的相關(guān)操作技巧,需要的朋友可以參考下2016-11-11深入學(xué)習(xí)JavaScript的AngularJS框架中指令的使用方法
這篇文章主要介紹了深入學(xué)習(xí)JavaScript的AngularJS框架中指令的使用方法,指令的使用是Angular入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2016-03-03