angular - 如何在 Method intercept() Http Interceptor 中使用 setTimeout
问题描述
我使用 HttpInterceptor 设置“承载令牌”标题以登录 Angular,当我登录服务器时返回一个令牌并将其保存在 Response 变量中,但我需要一个 Request 变量,这就是我使用 Intercept 的原因。
export class TokenInterceptorService implements HttpInterceptor {
constructor(private authService: AuthService) { }
intercept(req, next) {
const tokenizeReq = req.clone({
setHeaders: {
authorization: `Bearer ${this.authService.getToken()}`
}
});
return next.handle(tokenizeReq);
}
}
导航器中令牌为 Null 的图像我使用 Google Chrome
好吧,当我打印变量时,我发现问题我在令牌不存在时设置令牌,
截取打印令牌时的图像
当我正确使用 setTimeout 打印令牌但我不知道如何在方法拦截中使用时,我尝试了不同的方法来使用此方法,但是当我尝试添加它时,我不知道如何在方法拦截()中使用 setTimeout
当我使用 setTimeout 打印令牌时的代码
export class TokenInterceptorService implements HttpInterceptor {
constructor(private authService: AuthService) { }
intercept(req, next) {
const tokenizeReq = req.clone({
setHeaders: {
authorization: `Bearer ${this.authService.getToken()}`
}
});
setTimeout(() => {
const token = this.authService.getToken();
console.log(token);
}, 100);
return next.handle(tokenizeReq);
}
}
如何在方法 intercept() 中使用 setTimeout 我尝试保存变量但设置数字(6、5 或 9)我不知道该怎么做。
解决方案
推荐阅读
- node.js - 无法从 Windows 卸载 Angular 1.7.4
- sql - 在数据透视聚合函数中使用 CONCAT 函数的 SQL Server 错误
- docker - Nginx 和 Docker - 将 localhost 端口 8000 暴露给 localhost 端口 80
- java - 如何在 RX Java 中处理嵌套事件
- vba - vba access - datediff
- javascript - 如何在 owl-carousel 中重置 SVG 动画
- java - 使用 firebase 的实时数据库 - 检索特定信息
- c# - 如何在“,”之前找到单词?
- node.js - 如何使用 mongoose refs 处理一对多关系
- python - 执行 Git 命令而不在仓库中并输出当前目录