javascript - Är ReplaySubject(1) samma som AsyncSubject()?


Jag använder för närvarande detta för att utföra notifieringar:

  /**
   * Create notifications that broacast
   * the entire set of entries.
   */
  protected notify = new ReplaySubject<E[]>(1);

Om jag tolkar det rätt kan jag byta ut ReplaySubject<E[]>(1) mot AsyncSubject<E[]>()?

Skulle detta vara en äpple-till-äpple-övergång eller kan det finnas semantiska skillnader här?

Svar #1

Nej, de är verkligen inte samma.

ReplaySubject(1) kommer alltid att spela upp den senaste emissionen oavsett när observatören prenumererar. Den kan emittera ett obegränsat antal gånger.

AsyncSubject ignorerar alla utsläpp tills den observerbara är klar, sedan skickar den det sista utsläppta värdet. Den kan bara någonsin skicka en gång (högst) och när den gör det, kommer den också att slutföra.

Relaterade artiklar