【发布时间】:2020-03-24 19:43:18
【问题描述】:
什么时候需要 asObservable() 在主题(例如 BehaviorSubject)上获取主题的 observable?主体本身也可以转换为 Observable。
问题
-
name1$和name2$之间的技术区别是什么? - 应该使用哪一个(
name1$或name2$)?
代码示例
import { Observable } from 'rxjs/Observable';
import { BehaviorSubject } from 'rxjs';
export class Person {
private nameSubject: BehaviorSubject<string> = new BehaviorSubject<string>('lorem');
public get name1$(): Observable<string> {
return this.nameSubject.asObservable();
}
public get name2$(): Observable<string> {
return this.nameSubject;
}
public setName(value: string): void {
this.nameSubject.next(value);
}
}
提前感谢您的回答!
【问题讨论】:
-
使用
asObservable()时,访问next时会出错。当你进行转换时,你可以将 Observable 转换回一个让我们调用next的类型。见:stackblitz.com/edit/rxjs-qhxv2u
标签: javascript typescript rxjs rxjs6