如果我只在组件内使用某个主题,是否需要取消订阅该主题?

Ily*_*lya 1 rxjs angular

@Component({
  selector: 'app-home2',
  templateUrl: './home2.component.html',
  styleUrls: ['./home2.component.scss']
})
export class Home2Component implements OnInit {

  randNumberSub: BehaviorSubject<number> = new BehaviorSubject<number>(
    Math.random()
  );

  ngOnInit() {
    this.randNumberSub.subscribe((data) => {
      console.log(`Sample1Component ==> RandomNumber: ${data}`);
    });
  }

  onClick() {
    this.randNumberSub.next(100);
  }

}
Run Code Online (Sandbox Code Playgroud)

我知道,如果我使用一个主题,例如,从我注入的服务中,我需要取消订阅它以避免内存泄漏,但如果我仅在组件内部使用该主题,它在销毁时会取消订阅吗?

Mat*_*ler 5

每个未完成的可观察对象都需要显式取消订阅。

在 v16 中,Angular 引入了takeUntilDestroyed当组件被销毁时取消订阅的操作符。