angular - this.userSubject = 新的 BehaviorSubject(JSON.parse(localStorage.getItem('user'))); 意味着什么
问题描述
我试图分解这段代码片段来理解。new BehaviourSubject 似乎是一个函数调用。但是那里必须做什么。它是否要求函数 BehaviourSubject 具有返回类型 User。请以可以理解的方式向我解释。
this.userSubject = new BehaviorSubject<User>(JSON.parse(localStorage.getItem('user')));
解决方案
BehaviorSubject
需要一个初始值并将当前值发送给新订阅者。初始值来自localStorage
。而已。您可以添加订阅者以this.userSubject
稍后获取初始值。
new BehaviorSubject<User>
,尖括号<>
表示BehaviorSubject
是泛型类,User
传入的是泛型类型参数。
这是一个例子:
// RxJS v6+
import { BehaviorSubject } from 'rxjs';
const subject = new BehaviorSubject(123);
// two new subscribers will get initial value => output: 123, 123
subject.subscribe(console.log);
subject.subscribe(console.log);
// two subscribers will get new value => output: 456, 456
subject.next(456);
// new subscriber will get latest value (456) => output: 456
subject.subscribe(console.log);
// all three subscribers will get new value => output: 789, 789, 789
subject.next(789);
// output: 123, 123, 456, 456, 456, 789, 789, 789
推荐阅读
- java - PDFBox中PDF文件的不同高度和宽度属性
- unit-testing - 在 Visual Studio 2017 [版本 15.8.1] 上找不到面对测试用例
- gem5 - gem5 FS模式下访问pagemap
- racket - 如何重复应用函数以获得无限序列?
- python - 重用函数的返回值
- mysql - 在mysql中使用大数据集随机化结果的最快方法
- python - Python从标签中获取文本
- vba - 在 Word 文档中查找特定字符串并超链接到位于 ActiveDocument.Path 中的 pdf
- node.js - 在急切加载中续集 afterFind 钩子
- sql - 不正确的语法 - SQL