首页 > 解决方案 > this.userSubject = 新的 BehaviorSubject(JSON.parse(localStorage.getItem('user'))); 意味着什么

问题描述

我试图分解这段代码片段来理解。new BehaviourSubject 似乎是一个函数调用。但是那里必须做什么。它是否要求函数 BehaviourSubject 具有返回类型 User。请以可以理解的方式向我解释。

this.userSubject = new BehaviorSubject<User>(JSON.parse(localStorage.getItem('user')));

标签: angulartypescriptfunctionrxjs

解决方案


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

推荐阅读