javascriptangulartypescriptecmascript-6rxjs

Typescript rxjs : is there any clean alternative to setimeout 0


Withing my angular app , I'm using this kind of treatment

myMethod(){
 ...
 setTimeout(() => {
      this.router.navigate(['mucomponent']);
 });
}

As I was told : setTimeout without a delay (0) seems to wait the next tick where all treatments are done to begin my treament. it's a planification for the near future.

Since I need this behaviour

Is there any clean alternative to do it the same with typescript or rxjs to do it better ?

Suggestions ?


Solution

  • You can use Interval or take in rxjs;

    import { interval } from 'rxjs';
    import { take} from 'rxjs/operators';
    
    myMethod() {
      interval(0).pipe(take(1),
       ).subscribe(value =>
        this.router.navigate(['mucomponent']);
    }