假设路由守卫有这种场景

需要使用observable同时发送多个Http 请求,判断request2返回的数据中是否存在request1返回的数据

使用async await

export class testAuth implements CanActivate {
username = localStorage.getItem("username");
EmployeeNo: any;
constructor(
private dpaService: DpaService,
private testService: TestService,
) { }
async canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Promise<boolean | UrlTree> {
try{
if(this.username){
//forkJoin同时发送多个http请求
return await forkJoin([this.dpaService.getUserByEmail(this.username),this.testService.queryAll()])
.toPromise().then((results:any)=>{
//results为多个请求返回的结果数组
this.EmployeeNo = results[0][0].EmployeeNo;
return results[1].filter((element: any)=>element.emplId === this.EmployeeNo).length>0;
});
}
else{
return false;
}
} catch(err){
return false;
}
}
}

最新文章

  1. SQL 存储过程优化经验
  2. [已开源/文章教程]独立开发 一个社交 APP 的源码/架构分享 (已上架)
  3. Sumsets
  4. XE3随笔11:Merge、Clone、ForcePath
  5. Js内置对象的应用
  6. 函数-头文件//Calculator.h
  7. scala学习笔记——操作符
  8. Delete website with command.
  9. (40)JS运动之右下角悬浮框
  10. RockMongo 安装
  11. php测试题
  12. Confluence 6 安装一个语言组件
  13. 关于decode(&quot;utf-8&quot;)出现编码错的提示
  14. Redis 队列好处
  15. 开放本地MYSQL服务器端口
  16. day32
  17. Sailing
  18. ceph 之recovery machhine
  19. ScaleIO 1.2 基础
  20. 简单好用的包管理器 brew

热门文章

  1. Angularjs的工程化
  2. shell基础命令知识持续更新
  3. java入门与进阶-P1.5+P1.6
  4. java 入门与进阶P-6.3+P-6.4
  5. 【新晋开源项目】内网穿透神器[中微子代理] 加入 Dromara 开源社区
  6. 让 MSYS2 Bash 像 Git Bash 一样显示 Git 分支名称
  7. openstacksdk快速上手
  8. Python内置对象(一)
  9. SpringMVC基础源码分析(一)
  10. python3.9不支持win7