برنامه نویسی

Angular RxJS Unsubscriber – انجمن DEV

لغو اشتراک

لغو اشتراک برای اشتراک RxJS برای لغو اشتراک.

در Angular، ما معمولا از اشتراک RxJS استفاده می‌کنیم، اما گاهی فراموش می‌کنیم که اشتراک آن را لغو کنیم، که باعث نشت حافظه می‌شود. مزایای استفاده از Unsubscriber این است که نیازی به مدیریت متغیرهای فردی و لغو اشتراک آنها نیست (البته خوب کار می کند، اما برای نوشتن به کد کمی بیشتر نیاز دارد). Unsubscriber یک کلاس ساده برای جذب اشتراک های RxJS در یک آرایه است.

زنگ زدن unsubscribe() برای لغو اشتراک همه آنها، همانطور که انجام می دهید
در کتابخانه اجزای شما unmount/onDestroy رویداد چرخه زندگی

نصب و راه اندازی

npm install unsubscriber --save
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نمونه های زاویه ای

2 راه اصلی برای استفاده از Unsubscriber وجود دارد: راه “تنظیم کننده” و راه “افزودن/آرایه”.

RxJS از افزودن اشتراک به آرایه ای از اشتراک ها پشتیبانی می کند. سپس می توانید مستقیماً از آن آرایه لغو اشتراک کنید. اگر این تکنیک را با Unsubscriber با استفاده از نحو تنظیم کننده زیر ترجیح می دهید، از آن استفاده کنید.

تنظیم کننده تکنیک – نحو

مثال با استفاده از queue دارایی برای جمع آوری اشتراک ها با استفاده از یک تنظیم کننده.

export class ExampleComponent implements OnDestroy {
  private bus = new Unsubscriber();

  ...
  this.bus.queue = observable$.subscribe(...);
  this.bus.queue = observable$.subscribe(...);
  this.bus.queue = observable$.subscribe(...);
  ...

  // Unsubscribe all subscription when the component dies/destroyed
  ngOnDestroy() {
    this.bus.unsubscribe();
  }
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تکنیک آرایه/افزودن – نحو

مثال با استفاده از .add تکنیک. این مشابه چیزی است که RxJS خارج از جعبه پشتیبانی می کند.

export class ExampleComponent implements OnDestroy {
  private bus = new Unsubscriber();

  ...

  this.bus.add(observable$.subscribe(...)); 

  this.bus.add(observable$.subscribe(...)); 

  // Add multiple subscriptions at the same time
  this.bus.add( 
    observable1$.subscribe(...),
    observable2$.subscribe(...),
    anotherObservable$.subscribe(...)
  ); 

  ...

  // Unsubscribe all subscription when the component dies/destroyed
  ngOnDestroy() {
    this.bus.unsubscribe();
  }
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

Github Techindeck

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا