Angular 7:尝试使用 setTimeout 延迟 router.navigate 无效

Angular 7: trying to delay router.navigate with setTimeout not working

我的登录处理程序在写入带有用户令牌的 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']));
  }

感谢您的回复。我找到了根本原因,所以我不再需要解决方法。

在令牌可用之前正在实例化服务。超时没有帮助,因为问题已经发生了。