首页 > 解决方案 > 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 => {
            ...

先感谢您

标签: angular

解决方案


  1. this['subscription'] = this.datosAltaUsuario.subscribe();, 然后this['subscription'].unsubscribe();
  2. 您可以在 in 中执行此操作ngOnDestroy,但它不会隐式执行:您必须编写 unsbuscribe
  3. 我不知道最佳实践,但这绝对不是最糟糕的实践。
  4. 如果您取消订阅,您不必担心。

推荐阅读