angular - Angular2: How to make sure the execution will be run in order line by line? -


i have angular2 navbar component includes logout button:

import { component, oninit } '@angular/core'; import { loginservice } '../login.service'; import { router } '@angular/router';  @component({   selector: 'app-navbar',   templateurl: './navbar.component.html',   styleurls: ['./navbar.component.css'] }) export class navbarcomponent implements oninit {      loggedin: boolean;      constructor(private loginservice: loginservice, private router : router) {         if(localstorage.getitem('portaladminhasloggedin') == '') {             this.loggedin = false;         } else {             this.loggedin = true;         }     }      logout(){         this.loginservice.logout().subscribe(             res => {                 localstorage.setitem('portaladminhasloggedin', '');             },             err => console.log(err)             );          this.router.navigate(['/login']);         location.reload();     }      getdisplay() {     if(!this.loggedin){       return "none";     } else {       return "";     }   }    ngoninit() {   }  } 

what expect when clicking logout button firstly logout() function in loginservice executed set localstorage variable, nagivate login component , reload page.

but realize sometime page reloaded before executing logout() function in loginservice, not set new value localstorage. how can correct code executed in order?

thank you!

any time execute asynchronous process, such logout, code not executed in order. argument .subscribe method callback method called @ undefined future time. way ensure code executed after complete call code within subscribe method.

logout(){     this.loginservice.logout().subscribe(         res => {             localstorage.setitem('portaladminhasloggedin', '');             this.router.navigate(['/login']);             location.reload();  // <-- for?         },         err => console.log(err)         );   } 

and i'm curious location.reload() for. should not need reload after navigating?


Comments

Popular posts from this blog

angular - Ionic slides - dynamically add slides before and after -

minify - Minimizing css files -

Add a dynamic header in angular 2 http provider -