Angular 5 BehaviourSubject取消订阅

时间:2018-04-26 09:07:58

标签: 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;”?
  • 我有点担心可能的内存泄漏

提前谢谢

1 个答案:

答案 0 :(得分:0)

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