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();
}

Relaterte artikler