在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);
() => { this.trigger(); }, 1000);
這樣就可以成功設定interval了,同時會傳回一個Timer,Javascript是傳回數字,但這邊卻是回傳Timer型別物件,之後如果要清除interval,方法就跟Javascript一樣了:
if (this.intervalRef != null)
clearInterval(this.intervalRef);
也許Angular 4也有提供根AngularJs一樣的$interval服務,但目前還未學到,所以暫時就以這方式使用了。
沒有留言:
張貼留言