angularjs - Javascript/TypeScript: Hur kör man kod direkt efter return-satsen i samma scope?


Först och främst: Är det möjligt? Jag har ett vagt minne av att detta är möjligt, men jag verkar inte kunna formulera min fråga tillräckligt bra för att Google/Stack ska ge mig en idé om vad jag ska göra.

Givet denna kod (transform-funktion inom en egen pipe -Angular 2-):

transform(statuses: Status[], test: string): Status[] {

    return statuses.filter(status => status.Id === 1);

    //Code to be executed after return has happened
    this.updatePager.emit();
  }   

Hur får jag koden this.updatePager.emit(); att köras direkt efter mitt return-uttryck.

Vänliga hälsningar allihopa. Tips på hur jag kan formulera denna fråga så att jag kan söka vidare tas alltid emot med glädje!

Svar #1

Detta borde fungera.

  transform(statuses: Status[], test: string): Status[] {

    setTimeout(function(){ this.updatePager.emit(); }, 1000); //Adjust time here.

    return statuses.filter(status => status.Id === 1);

  }   

Svar #2

Detta kan fungera för dig, kör kod i nästa applikationstakt med setTimeout 0.

transform(statuses: Status[], test: string): Status[] {
    //Code to be executed in the next tick
    setTimeout( ()=> this.updatePager.emit(), 0 );

    return statuses.filter(status => status.Id === 1);
}

Relaterade artiklar