[英]RxJS: Creating and Subscribing observable onClick
我有這個模板:
<button (click)="action()">Action</button>
以及以下JS:
function action() {
const obs$ = of(true).pipe(delay(500));
obs$.pipe(take(1)).subscribe(...);
}
我想知道每次單擊按鈕時基本上創建一個新的 Observable 是否可以接受。 它有一個take(1)
因此我認為 memory 泄漏在這里不是一個問題,但我想知道早點聲明我的 observable 並在其上附加/分離訂閱不是更好。
所以你給你的按鈕一個本地參考:
<button #myButton>Click me!</button>
然后在 TS 中:
@ViewChild() myButton: ElementRef;
clicks$: Observable<any>;
destroy$: Observable<boolean>;
ngAfterViewInit() {
this.clicks$ = fromEvent(this.myButton.nativeElement, 'click').pipe(
takeUntil(this.destroy$),
//...
).subscribe();
}
ngOnDestroy() {
this.destroy$.next(true);
}
僅在絕對必要時訂閱 TS。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.