angular - 'this' este nedefinit când apelez o funcție din serviciul meu


Am acest apel pe pagina componentă

this.timerSessionService.startTimer(this.finish.bind(this), this.onSynchronice);

ei bine, funcționează grozav cu this.finish, dar când apelez onSynchronice din Service-ul meu, tot funcționează și ajunge la component-ul meu, problema apare când în component-ul meu încerc să apelez o funcție care este în interiorul componentului meu folosind .this, spune:

EROARE Eroare: Nedeprinsă (în promisiune): TypeError: Nu se poate seta proprietatea 'pew' a nedefinitului

acest lucru se datorează faptului că în funcția mea onSynchronice folosesc .this și apoi spune că nu există... cum fac să rezolv asta?

Pe componenta mea

onSynchronice(pew) {
  console.log(pew["pew"]); //Works perfect
  this.pew= pew; //Crashes because of .this
  this.anyfunction(pew); //It crashes and says the same, anyfunction() does not exist, even if it exists
}

Răspuns #1

Poți defini onSynchronice ca o funcție săgeată:

onSynchronice = (pew) => {
    console.log(pew["pew"]);
    this.pew= pew;
    this.anyfunction(pew);
}