首页 > 解决方案 > Angular 7:尝试使用 setTimeout 延迟 router.navigate 不起作用

问题描述

在写入带有用户令牌的 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']));
  }

标签: javascriptangularangular-universalangular7

解决方案


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

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


推荐阅读