Angular 4: 使用 setInterval


在Javascript內使用setInterval沒問題,用法基本上就是
var ref = setInterval( 'myFunction()', second * 1000);

透過這方式可以讓Javascript每 N秒執行一次 myFunction,同時會回傳一個數字到ref變數,在之後如果不需要這個 interval後,可以呼叫 clearInterval(ref),把ref變數傳入即可清除這個interval。

在Javascript內使用沒問題,但是在Angular 4內的typescript內要怎麼使用setInterval呢?
把Javascript的寫法直接移植過去竟然沒辦法直接使用,找了一段時間,才找到方法:

首先宣告一個ref變數
intervalRef: any; this.intervalRef = setInterval(
() => { this.trigger(); }, 1000);

這樣就可以成功設定interval了,同時會傳回一個TimerJavascript是傳回數字,但這邊卻是回傳Timer型別物件,之後如果要清除interval,方法就跟Javascript一樣了:
if (this.intervalRef != null) clearInterval(this.intervalRef);

也許Angular 4也有提供根AngularJs一樣的$interval服務,但目前還未學到,所以暫時就以這方式使用了。


沒有留言:

張貼留言

Java Spring Framework 筆記 - Autowiring (2)

這篇記錄透過 Annotation來做到 Spring的 autowiring。