angular - Angular 5 BehaviourSubject 退订
问题描述
我在 Angular 服务中创建了一个 BehaviourSubject:
@Injectable()
export class UsuarioService {
private _altaUsuarioData: BehaviorSubject<AltaUsuarioProvMunModel>;
constructor(private http: HttpClient) {
this._altaUsuarioData = new BehaviorSubject(new AltaUsuarioProvMunModel());
}
getAltaUsuarioData() {
return this._altaUsuarioData.asObservable();
}
我在另一个组件中访问它:
this.datosAltaUsuario: Observable<AltaUsuarioProvMunModel>;
constructor(){
this.datosAltaUsuario = this.usuarioService.getAltaUsuarioData();
this.datosAltaUsuario.subscribe(
resp => {
...
- 如何退订 BehaviourSubject?
- onDestroy 会处理它吗?
- 我用 asObservable() 创建实例并创建可观察的“this.datosAltaUsuario: Observable;”做得好吗?
- 我有点担心可能的内存泄漏
先感谢您
解决方案
this['subscription'] = this.datosAltaUsuario.subscribe();
, 然后this['subscription'].unsubscribe();
- 您可以在 in 中执行此操作
ngOnDestroy
,但它不会隐式执行:您必须编写 unsbuscribe。 - 我不知道最佳实践,但这绝对不是最糟糕的实践。
- 如果您取消订阅,您不必担心。
推荐阅读
- photoshop - Photoshop:打开时将 jpeg 转换为 16 位的脚本
- jenkins - 詹金斯管道切割日志
- python - 使用python pandas过滤/迭代列中的每个项目
- typescript - 有什么方法可以过滤{}不放额外的地图吗?
- python - 欧米茄在连续过松弛率法中的意义是什么?
- python - 带有 fit_transfrom 或预测对象而不是拟合对象的 sklearn 管道
- java - 为什么我不能向数组添加元素?
- django - Django的分页
- python - python周期性时间序列浮动窗口分析系统架构
- python - 需要一个“for循环”来从它们各自的api url获取股票投资组合的股息数据