angular RxJS
分析的项目代码可以在https://github.com/loiane/angular-login-hide-navbar找到
这个项目里有一段用户登录认证服务如下:
auth.guard.ts
auth.service.ts
可以注意到这三句代码
private loggedIn: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
this.loggedIn.next(true);
this.authService.isLoggedIn.pipe
理解理解:
当Observer订阅了一个BehaviorSubject,它一开始就会释放Observable最近释放的一个数据对象,当还没有任何数据释放时,它则是一个默认值。接下来就会释放Observable释放的所有数据。如果Observable因异常终止,BehaviorSubject将不会向后续的Observer释放数据,但是会向Observer传递一个异常通知。简单来说,就是释放订阅前最后一个数据和订阅后接收到的所有数据:(参考:理解RxJava(四)Subject用法及原理分析)
take使得Observable仅仅发射我们指定的前面的n个项(参考:RxJS入门(5)----编写并发程序)
未完待续
参考:RxJS异步通信之Subject和BehaviorSubject
参考:Angular基础(八) Observable & RxJS
参考:PublishSubject,ReplaySubject,BehaviorSubject,AsyncSubject
参考:Rxjs入门3-Operators[实例操作符、静态操作符、弹珠图、选择操作符、操作符分类]、Subject、为啥要定义Subject (主体)概念、Subject派生
参考:rxjs-操作符
参考:Angular 2 redirect on click
参考:Why routerLink and router.navigate() act differently?
参考:How to use router.navigateByUrl and router.navigate in Angular
- 点赞
- 收藏
- 关注作者
评论(0)