javascript - setInterval i IONIC 3
Jeg vil gjerne kjøre en funksjon hvert 1 sekund. Etter å ha søkt, fant jeg setInterval, men det fungerer ikke for meg.
setInterval(function(){
this.myfuntion();
}, 1000);
Jeg prøvde også this.myfuntion, men det fungerer ikke heller.
Svar #1
Løsningen er å bruke pilfunksjoner:
setInterval(() => {
this.myfuntion(); // Now the "this" still references the component
}, 1000);
Når du bruker pilfunksjoner, blir ikke this-egenskapen overskrevet og refererer fortsatt til komponentinstansen.
Svar #2
Det finnes egentlig to metoder for å utføre det.
Prøv å bruke observable som passer best til ditt krav.
Metode 1:
import {Observable} from 'Rxjs/rx';
import { Subscription } from "rxjs/Subscription";
// if you want your code to work everytime even though you leave the page
Observable.interval(1000).subscribe(()=>{
this.functionYouWantToCall();
});
Metode 2:
// if you want your code to work only for this page
//define this before constructor
observableVar: Subscription;
this.observableVar = Observable.interval(1000).subscribe(()=>{
this.functionYouWantToCall();
});
ionViewDidLeave(){
this.observableVar.unsubscribe();
}
