typescript - 在 Angular 6 中,以下哪一種方法是設置重複定時任務的更好(高效/乾淨)方式?
在尋找在 Angular 中設置重複定時功能的方法時,我發現了各種不同的實現方式。我想知道哪一種方式會比較好。
我遇到過的實現方式:
設置間隔
this.interval = setInterval( () => {
// doSomething();
}, 1000);
Observable.interval
import {Observable} from 'rxjs'; // Angular 6
Observable.interval(2000 * 60).subscribe(
x => {
// doSomething();
});
Observable.timer
let timer = Observable.timer(2000,1000);
timer.subscribe(
t => {
// doSomething();
});
IntervalObservable
IntervalObservable.create(1000).subscribe(
x => {
// doSomething();
});
計時器可觀察物件
TimerObservable.create(0, this.interval)
.takeWhile(() => this.alive)
.subscribe(() => {
this.myExampleService.get()
.subscribe((data) => {
this.data = data;
if(!this.display){
this.display = true;
}
});
});
rxjs 計時器
import { timer, Observable, Subject } from 'rxjs';
import { switchMap, takeUntil, catchError } from 'rxjs/operators';
private fetchData$: Observable<string> = this.myservice.checkdata();
private refreshInterval$: Observable<string> = timer(0, 1000)
.pipe(
// This kills the request if the user closes the component
takeUntil(this.killTrigger),
// switchMap cancels the last request, if no response have been received since last tick
switchMap(() => this.fetchData$),
// catchError handles http throws
catchError(error => of('Error'))
);
任何幫助都感激不盡。謝謝。