javascript - 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']));
}
解决方案
感谢您的回复。我找到了根本原因,所以我不再需要解决方法了。
在令牌可用之前正在实例化服务。超时没有帮助,因为问题已经发生了。
推荐阅读
- chart.js - 列宽相等的折线图
- javascript - 如何解决使用 php 序列化和
- git - 如何解决“远程:您 (@user) 必须接受服务条款才能执行此操作。” 问题?
- apache-kafka - Kafka KStream OutOfOrderSequenceException
- reactjs - Jest 从依赖的 node_modules 抛出类型错误
- awk - 仅模式匹配字符串
- c# - 使用 IdentityServer4 进行子域多租户登录
- python - 在登录期间验证用户名和密码将用户返回为无
- cron - 如何每 2 分钟设置一次 cron,但仅从凌晨 12:00 开始设置 4 小时
- javascript - 如何在 JavaScript 中为特殊条件设置正则表达式?