Angular 7: попытка задержать router.navigate с setTimeout не работает - PullRequest
0 голосов
/ 01 ноября 2018

У меня проблема с тем, что мой обработчик входа перенаправляет на страницу до того, как файл cookie с токеном пользователя будет записан. В качестве обходного пути я попытался добавить задержку перед навигацией, но она не работает.

Почему навигация происходит до истечения времени ожидания? (Это Angular 7 Universal.) Я также пытался установить токен в функции задержки, но это не имело значения.

signInSuccessHandler() {
...
   const token = this.getToken();
        this.setToken(access_token);
        setTimeout(() => { this.delayNavigation(); }, 1000);
  }

  delayNavigation() {
    this._zone.run(() => this.router.navigate(['/people']));
  }

1 Ответ

0 голосов
/ 02 ноября 2018

Спасибо за ответы. Я нашел основную причину, поэтому мне больше не нужен обходной путь.

Служба создавалась до того, как токен был доступен. Тайм-аут не помог, потому что проблема уже произошла.

...