溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

AngularJs定時(shí)器$interval和$timeout怎么用

發(fā)布時(shí)間:2021-08-20 11:18:17 來(lái)源:億速云 閱讀:121 作者:小新 欄目:web開(kāi)發(fā)

這篇文章給大家分享的是有關(guān)AngularJs定時(shí)器$interval和$timeout怎么用的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

$interval

window.setInterval的Angular包裝形式。Fn是每次延遲時(shí)間后被執(zhí)行的函數(shù)。

間隔函數(shù)的返回值是一個(gè)承諾。這個(gè)承諾將在每個(gè)間隔刻度被通知,并且到達(dá)規(guī)定迭代次數(shù)后被取消,如果迭代次數(shù)未定義,則無(wú)限制的執(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ù)值,如果沒(méi)設(shè)置,則無(wú)限制循環(huán)。

invokeApply:如果設(shè)置為false,則避開(kāi)臟值檢查,否則將調(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,則跳過(guò)臟值檢測(cè),否則將調(diào)用$apply。

方法:

cancel(promise);

取消與承諾相關(guān)聯(lián)的任務(wù)。這個(gè)的結(jié)果是,承諾將被以摒棄方式來(lái)解決。

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í)行方面... 

感謝各位的閱讀!關(guān)于“AngularJs定時(shí)器$interval和$timeout怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI