Portovi i veze
Razumeti portove znači razumeti kada se kutija izvršava. Ova stranica je referenca modela.
Tri implicitna porta
Section titled “Tri implicitna porta”Ima ih svaka kutija, a da se ne pojavljuju u njenoj konfiguraciji:
| Port | Smer | Tok | Uloga |
|---|---|---|---|
in | Ulaz | Signal | Okidač. Prihvata se više dolaznih veza |
error | Izlaz | Vrednost + signal | Ruta neuspeha |
done | Izlaz | Signal | Emituje se po dovršetku kutije i celog njenog nizvodnog podgrafa |
Tri kutije nemaju port error: Izlaz, Sada i Retry (pri čemu je ova
poslednja i sama granica greške). Dve nemaju done: Izlaz i Throw.
Tipovi tokova
Section titled “Tipovi tokova”| Tok | Misaona slika | Ponašanje |
|---|---|---|
| Vrednost | Podatak | Prenosi vrednost; služi i kao okidač |
| Signal | Otkucaj | Ne prenosi ništa, samo aktivira |
| Oboje | Prenosi vrednost i aktivira |
Jedina zabranjena kombinacija: izlaz čistog signala ka ulazu čiste vrednosti. Ne bi bilo čime popuniti vrednost.
Tipovi podataka
Section titled “Tipovi podataka”any · json · number · string · boolean · duration · response ·
status · list · object.
Tipizacija služi pre svega vizuelnoj udobnosti, uz jedan strog izuzetak: ulaz
tipa lista (port list akcija Dodaj u listu i Ukloni iz liste) odbija
izvor koji nije kompatibilan sa listom. json i list međusobno su
kompatibilni; običan object nije.
Arnost
Section titled “Arnost”- Ulazni port prihvata samo jednu vezu. To je ono što čini graf čitljivim: jedna vrednost, jedno poreklo.
- Osim
in, koji prihvata koliko god veza želite. - Izlaz može da napaja koliko god ulaza želite.
Kada se kutija izvršava
Section titled “Kada se kutija izvršava”Tri pravila, ovim redosledom:
- Korenske kutije se pokreću. Svaka kutija bez dolazne veze pokreće se pri pokretanju scenarija. Ne postoji kutija „start”.
- Čekaju se samo povezani ulazi. Kutija se izvršava kada je svaki njen stvarno povezan ulazni port primio vrednost. Nepovezani port nikada se ne čeka. Vrednosti ostaju zapamćene: ulaz čuva poslednju primljenu vrednost.
- Port
insluži kao barijera. Kada ga napaja više veza, čeka da sve stignu, pa se aktivira jednom. To je „sačekaj da se ove tri grane završe” iz modela.
Izuzetak: ponovno odigravanje pri svakom događaju
Section titled “Izuzetak: ponovno odigravanje pri svakom događaju”Opcija „Odigraj ponovo pri svakom primljenom događaju” (kontekstni meni kutije) pretvara sve povezane ulaze u neblokirajuća „ili” vrata: kutija se ponovo aktivira pri svakoj primljenoj vrednosti, na bilo kom portu.
Dve upotrebe: obrada toka poruku po poruku i odblokiranje ciklusa dovršavanja (grafa koji se vraća na samog sebe).
done naspram izlaza vrednosti
Section titled “done naspram izlaza vrednosti”To je najkorisnija razlika u praksi:
- izlaz vrednosti emituje čim kutija proizvede svoj rezultat;
donedodatno čeka da se završi sve što taj rezultat troši.
Za sekvenciranje — „uradi sve ovo, pa počisti” — povežite od done. Za
prosleđivanje podatka, povežite od izlaza vrednosti.
Uslovne grane
Section titled “Uslovne grane”To nije poseban mehanizam: to su izlazni portovi koji nose ulogu, a ona određuje njihovu boju.
| Kutija | Izlazi |
|---|---|
| If | then / else |
| While, Do…While | then (telo) |
| Assert | then (uspeh) / else (neuspeh) |
| Retry | attempt / exhausted |
| Validacija šeme | valid / invalid / errors |
| Switch | po jedan port za svaki slučaj, plus default |
| Socket.IO konekcija | po jedan port za svaki deklarisani događaj, plus others |
Selektori veza
Section titled “Selektori veza”Veza može da nosi selektor: putanju primenjenu na vrednost u prolazu.
data.items[0].idbody['user-id']headers["content-type"]statusPrihvataju se oblici a.b, a[0], a['ključ'] i a["ključ"]. Segment koji
sadrži JSON analizira se u letu; putanja koja se ni sa čim ne poklapa daje
undefined.
Restorm ponekad sam izvede selektor u trenutku povezivanja, kada izvor ima statički pregled koji se svodi na jednu jedinu primitivnu vrednost. Uvek ga možete zameniti ili isprazniti.