angular - 如何暂停http请求,直到在localstorage中收到并记录令牌?
问题描述
我在角度应用程序中进行授权。我通过 OAuth 获取 CODE 并将其发送到后端。后端给我一个令牌。但是当我等待令牌的接收和记录时,几个 BASE(例如菜单计数器)请求返回 401 错误。将令牌写入内存后,如何保存所有请求并发送它们?
角 7.2.0
public intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
const currentToken = localStorage.getItem('accessToken');
if (currentToken) {
request = request.clone({
setHeaders: {
Authorization: `Bearer ${currentToken}`
}
})
}
return next.handle((request));
}
我想在收到令牌后才请求数据,现在我必须刷新页面重新请求所有数据
解决方案
所有的 http 请求本质上都是异步的。所以你必须在后端调用 Token 的 subscribe 方法中调用 Menu。所有后续调用也可以在其中进行。
推荐阅读
- javascript - 为什么删除菜单手机不起作用?
- bash - 文件中的 Bash Hex 到 Dec IP 转换
- javascript - 对象数组获得具有唯一 ID 的总数
- docker - 访问 Docker 内的 .NET Core 控制台应用程序生成的日志文件
- c++ - 在不使用 cv::warpAffine(...) 的情况下向所有方向移动 cv::Mat
- javascript - 节点 var 编号,但使用 Discord JS 删除“”
- javascript - 更新单元格时的时间戳函数 Javascript | 床单
- javascript - 如何实现数据比较函数的递归?
- html - 背景色通过位置:绝对伪元素
- r - 如何将管道中的数据传递给 colSums