Mõistmine kuumadest või külmadest jälgitavatest

Kui ma hakkasin vaatlejaid üles riputama, võttis mul üsna palju aega, et aru saada, mida tähendab kuum või külm jälgitav. Kui hakkasin mõistetest aru saama, mõistsin paremini, kuidas mu vaatlusalused käituvad. Seetõttu selgitan seda teile lihtsal viisil.

Kui te pole kindel, et saate juba aru, kuidas Observables üldiselt töötab, soovitaksin kõigepealt lugeda minu teist artiklit: Vaatlusalade mõistmine, loomine ja tellimine nurgas.

Foto Emily Campbell saidil Unsplash

Kuuma ja külma jälgitava mõiste mõistmiseks on hea alati viidata sellele, milline on andmete tootja. Selle lihtsustamiseks tehke järgmist.

Kui andmed on vaatlusaluse enda toodetud, kutsume seda külmaks jälgitavaks. Kui andmed toodetakse väljaspool vaatlusalust, siis kutsume seda kuumaks jälgitavaks.

Hüppasime paar sammu edasi, nii et lähme tagasi ja sukeldume sisse.

Külma vaatlused

Seega, kui andmed toodetakse jälgitavas, kutsume seda jälgitavaks “külmaks”. Nagu võisite lugeda minu eelmisest artiklist, on Vaatlejad laisad. Vaatlusobjektid on laisad selles mõttes, et nad täidavad väärtusi ainult siis, kui midagi sellega liitub. Iga abonendi jaoks alustab jälgitav uut täitmist, mille tulemuseks on asjaolu, et andmeid ei jagata. Kui teie jälgitav tekitab palju erinevaid väärtusi, võib juhtuda, et kaks vaatlust, mis tellivad enam-vähem samu, saavad kaks erinevat väärtust. Me nimetame seda käitumist „üksmeelseks muutmiseks”. Selle demonstreerimiseks:

Nagu näete, toodetakse andmed jälgitavas, muutes selle külmaks. Meil on kaks tellimust, mis tellivad enam-vähem samal ajal. Kuna jälgitav teeb iga tellija jaoks uue toimingu ja vaatlusalune genereerib juhusliku arvu, on abonendi saadud andmed erinevad. See pole halb asi, peate lihtsalt seda käitumist teadma.

Muidugi pole selline käitumine alati soovitav. Õnneks on seda käitumist lihtne muuta:

Woah, see oli lihtne! Kõik, mida tegime, oli andmetootja eemaldamine jälgitavast. Meil on endiselt kaks tellijat ja vaadeldav täidab endiselt kahel korral, kuid kuna andmed toodetakse väljaspool vaatlusalust, saavad meie tellimused samu andmeid.

Ma loodan, et see heliseb kellukest, sest me muutisime lihtsalt oma külma Vaatluskeskkonna kuumaks Vaatlusaluseks.

Kuumad vaatlejad

Jah, see on nii lihtne. Vaadeldav on külm, kui andmeid toodetakse vaatlusaluse sees, ja vaatlusalune on kuum, kui andmed toodetakse väljaspool vaatlusalust. Nagu äsja nägime, suudab Observable jagada andmeid mitme abonendi vahel. Me nimetame seda käitumist multisaateks.

Juhusliku arvu genereerimine pole reaalajas hea näide. Heaks näiteks oleks DOM-i üritused. Oletame, et jälgime klikkimise käitumist ja mitu tellijat teevad koordinaatidega midagi:

Andmed toodetakse väljaspool vaatlusalust ennast. Mis teeb selle tuliseks, sest andmeid luuakse olenemata sellest, kas abonenti on või mitte. Kui andmete koostamise ajal abonenti pole, kaotatakse andmed lihtsalt.

Kas üks on parem kui teine?

Noh, see sõltub kasutusjuhust. Külm jälgitav on tavaliselt hea, kui:

  • Soovite olla kindel, et mitu tellijat saavad samu andmeid.
  • Kui loote igal jälgitaval teostusel millegi uue esinemisjuhu, oletame näiteks veebipaigaühenduse. Te ei soovi iga tellija jaoks uut ühendust luua, vaid jagage seda lihtsalt kõigile tellijatele. Ühenduse kiirenduse teisaldamine väljast Vaadeldav muudab selle kuumaks ja parandab selle.

Järeldus

Loodetavasti aitab see artikkel teil paremini mõista, kuidas jälgitavad seadmed töötavad ja milliseid tagajärgi põhjustab andmete tootmine teie jälgitavas (külm) või väljaspool seda (kuum). Kui soovite sukelduda rxjs-sse sügavamalt, soovitan teil lugeda ühte minu teistest artiklitest, mis käsitlevad teemasid või käitumise subjekte, ReplaySubjectsit ja AsyncSubjectsit.

Kas otsite tööd Amsterdamis?

Töötan Sytaci juures vanemotstarbelise arendajana ja otsime keskmisi / vanemaid arendajaid, kes on spetsialiseerunud Angularile, Reaktusele, Javale või Scalale. Sytac on Hollandis väga ambitsioonikas nõustamisettevõte, mis töötab paljudes tuntud ettevõtetes panganduses, lennuettevõttes, valitsuses ja jaekaubanduses. Võite mõelda sellistele ettevõtetele nagu ING, KLM, Deloitte, Ahold Delhaize, ABN AMRO, Flora holland ja paljud teised.

Isiklikust arvamusest lähtuvalt eristab Sytac ennast nii oma kliendiportfellist kui ka sellest, kuidas nad oma töötajate eest hoolitsevad. Nad hoolivad tegelikult oma töötajate heaolust. Lisaks heale palgale (50K – 75k) märkate seda regulaarsetel kohtumistel konsultantide juhtidega, aga ka nende korraldatavate ürituste hulga ja kõigi muude pakutavate võimaluste järgi, et hoida kõik töötajad õnnelikena.

Kui arvate, et teil on kõige paremini töötamiseks vaja, saatke mulle meilisõnum aadressil [email protected] ja mul on hea meel teile veel öelda.