Aller au contenu

Portat dhe lidhjet

Të kuptosh portat do të thotë të kuptosh se kur ekzekutohet një kuti. Kjo faqe është referenca e modelit.

Çdo kuti i ka ato, pa u shfaqur brenda konfigurimit të saj:

PortaDrejtimiFluksiRoli
inHyrjeSinjalNisësi. Pranohen disa lidhje hyrëse
errorDaljeVlerë + sinjalRruga e dështimit
doneDaljeSinjalLëshohet pas përfundimit të kutisë dhe të gjithë nëngrafit të saj poshtë

Tri kuti nuk kanë portë error: Dalje, Tani dhe Retry (kjo e fundit duke qenë vetë një kufi gabimi). Dy nuk kanë done: Dalje dhe Throw.

FluksiSimboli mendorSjellja
VlerëNjë e dhënëBart një vlerë; shërben edhe si nisës
SinjalNjë cakNuk bart asgjë, vetëm nis
Të dyjaBart një vlerë dhe nis

I vetmi kombinim i ndaluar: një dalje sinjali të pastër drejt një hyrjeje vlere të pastër. Nuk do të kishte çfarë të vendosej brenda vlerës.

any · json · number · string · boolean · duration · response · status · list · object.

Tipizimi shërben kryesisht për rehatinë vizuale, me një përjashtim të rreptë: një hyrje e tipit listë (porta list e veprimeve Shto te një listë dhe Hiq nga një listë) refuzon një burim që nuk është i përputhshëm me listën. json dhe list janë të përputhshme mes tyre; një object i thjeshtë nuk është.

  • Një portë hyrëse pranon vetëm një lidhje. Kjo është ajo që e bën grafin të lexueshëm: një vlerë, një prejardhje.
  • Përveç in, që pranon sa lidhje të duash.
  • Një dalje mund të ushqejë sa hyrje të duash.

Tri rregulla, sipas rendit:

  1. Rrënjët nisen. Çdo kuti pa lidhje hyrëse nisë kur nisë skenari. Nuk ka ndonjë kuti «fillimi».
  2. Priten vetëm hyrjet e kabllëzuara. Një kuti ekzekutohet kur secila prej portave të saj hyrëse që janë vërtet të lidhura ka marrë një vlerë. Një portë e pakabllëzuar nuk pritet kurrë. Vlerat mbeten të ruajtura në memorie: një hyrje e ruan vlerën e fundit të marrë.
  3. Porta in bën barrierë. E ushqyer nga disa lidhje, ajo pret që të gjitha të kenë mbërritur dhe pastaj nis një herë. Ky është modeli «prit që këto tri degë të kenë përfunduar».

Opsioni «Riluaj në çdo ngjarje të marrë» (menuja kontekstuale e kutisë) i shndërron të gjitha hyrjet e kabllëzuara në porta «ose» jobllokuese: kutia rinisë në çdo vlerë të marrë, mbi cilëndo portë.

Dy përdorime: përpunimi i një fluksi mesazh pas mesazhi dhe shkyçja e një cikli plotësimi (një graf që kthehet mbi vetveten).

Ky është dallimi më i dobishëm në praktikë:

  • një dalje vlere lëshon sapo kutia të ketë prodhuar rezultatin e vet;
  • done pret veç kësaj që gjithçka që e konsumon këtë rezultat të ketë përfunduar.

Për të sekuencuar — «bëj gjithë këtë, pastaj pastro» — kabllëzoni nga done. Për të kaluar një të dhënë, kabllëzoni nga dalja e vlerës.

Ato nuk janë ndonjë mekanizëm më vete: janë porta dalëse që mbajnë një rol, i cili drejton edhe ngjyrën e tyre.

KutiaDaljet
Ifthen / else
While, Do…Whilethen (trupi)
Assertthen (sukses) / else (dështim)
Retryattempt / exhausted
Validim skemevalid / invalid / errors
Switchnjë portë për çdo rast, plus default
Lidhje Socket.IOnjë portë për çdo ngjarje të deklaruar, plus others

Një lidhje mund të mbajë një zgjedhës: një shteg i zbatuar mbi vlerën në kalim.

data.items[0].id
body['user-id']
headers["content-type"]
status

Pranohen format a.b, a[0], a['clé'] dhe a["clé"]. Një segment që përmban JSON analizohet në fluturim; një shteg që nuk përputhet me asgjë jep undefined.

Restorm ndonjëherë e nxjerr vetë një zgjedhës në çastin e kabllëzimit, kur burimi ka një parapamje statike që reduktohet në një vlerë të vetme primitive. Gjithsesi mund ta zëvendësoni ose ta zbrazni atë.