我正在尝试在服务中设置数据,然后在服务中填充数据后导航,我有一个时间问题,页面在服务能够填充之前导航.
我在服务中有以下代码
addToken(token) {
this.cookieService.set( 'token', token );
}
Run Code Online (Sandbox Code Playgroud)
单击按钮时的以下代码: -
this.token.addToken(res);
this.router.navigate(['/admin']);
Run Code Online (Sandbox Code Playgroud)
触发路由器后,/ admin页面会触发带有以下标题的端点: -
authHttpHeaders = new HttpHeaders({
'Authorization': 'Bearer ' + this.token.getToken(),
'Content-Type' : 'application/json',
'Cache-Control': 'no-cache'
});
Run Code Online (Sandbox Code Playgroud)
getToken()函数只接收来自cookie的令牌: -
getToken() {
return this.cookieService.get('token');
}
Run Code Online (Sandbox Code Playgroud)
如何在触发路由器导航之前确保addToken()已完成.
我知道我可以通过setTimeout实现它,但我真的不喜欢这样做.
在导航路由器被触发之前,我宁愿有某种形式的可观察或看到令牌不等于null或空.
在此先感谢您的帮助.