Portit ja kytkennät
Porttien ymmärtäminen on sen ymmärtämistä, milloin lohko suoritetaan. Tämä sivu on mallin viite.
Kolme implisiittistä porttia
Section titled “Kolme implisiittistä porttia”Jokaisella lohkolla on ne, vaikka ne eivät näy sen kokoonpanossa:
| Portti | Suunta | Virta | Tarkoitus |
|---|---|---|---|
in | Tulo | Signaali | Laukaisin. Useita saapuvia kytkentöjä hyväksytään |
error | Lähtö | Arvo + signaali | Epäonnistumisen reitti |
done | Lähtö | Signaali | Lähetetään, kun lohko ja koko sen alavirran aligraafi ovat valmiit |
Kolmella lohkolla ei ole error-porttia: Output, Nyt ja Retry
(viimeksi mainittu on itse virheraja). Kahdella ei ole done-porttia:
Output ja Throw.
Virtatyypit
Section titled “Virtatyypit”| Virta | Mielikuva | Toiminta |
|---|---|---|
| Arvo | Yksi tietoalkio | Kuljettaa arvon; toimii myös laukaisimena |
| Signaali | Yksi pulssi | Ei kuljeta mitään, ainoastaan laukaisee |
| Molemmat | Kuljettaa arvon ja laukaisee |
Ainoa kielletty yhdistelmä: puhtaan signaalin lähtö puhtaan arvon tuloon. Arvoon ei olisi mitään pantavaa.
Tietotyypit
Section titled “Tietotyypit”any · json · number · string · boolean · duration · response ·
status · list · object.
Tyypitys palvelee ennen kaikkea visuaalista mukavuutta, yhdellä tiukalla
poikkeuksella: luettelotyyppinen tulo (toimintojen Lisää luetteloon ja
Poista luettelosta portti list) hylkää lähteen, joka ei ole
luetteloyhteensopiva. json ja list ovat keskenään yhteensopivia; pelkkä
object ei ole.
Ariteetti
Section titled “Ariteetti”- Tuloportti hyväksyy vain yhden kytkennän. Juuri se tekee graafista luettavan: yksi arvo, yksi alkuperä.
- Paitsi
in, joka hyväksyy niin monta kytkentää kuin halutaan. - Lähtö voi syöttää niin montaa tuloa kuin halutaan.
Milloin lohko suoritetaan
Section titled “Milloin lohko suoritetaan”Kolme sääntöä, tässä järjestyksessä:
- Juuret käynnistyvät. Jokainen lohko, jolla ei ole saapuvaa kytkentää, käynnistetään skenaarion käynnistyessä. ”Aloitus”-lohkoa ei ole.
- Vain kytketyt tulot ovat odotettuja. Lohko suoritetaan, kun jokainen sen tosiasiallisesti kytketty tuloportti on saanut arvon. Kytkemätöntä porttia ei koskaan odoteta. Arvot jäävät muistiin: tulo säilyttää viimeksi saamansa arvon.
- Portti
intoimii esteenä. Kun sitä syöttää useampi kytkentä, se odottaa kaikkien saapumista ja laukaisee sitten kerran. Tämä on mallin ”odota, että nämä kolme haaraa ovat valmiita”.
Poikkeus: suoritus jokaisella tapahtumalla
Section titled “Poikkeus: suoritus jokaisella tapahtumalla”Valinta ”Suorita jokaisella vastaanotetulla tapahtumalla” (lohkon kontekstivalikko) muuttaa kaikki kytketyt tulot estottomiksi ”tai”-porteiksi: lohko laukeaa uudelleen jokaisesta vastaanotetusta arvosta, missä tahansa portissa.
Kaksi käyttötapaa: virran käsittely viesti kerrallaan ja valmistumissyklin avaaminen (graafi, joka silmukoi itseensä).
done vastaan arvolähtö
Section titled “done vastaan arvolähtö”Tämä on käytännössä hyödyllisin ero:
- arvolähtö lähettää heti kun lohko on tuottanut tuloksensa;
doneodottaa lisäksi, että kaikki tämän tuloksen kuluttajat ovat valmiita.
Vaiheistukseen — ”tee kaikki tämä ja siivoa sitten” — kytke portista done.
Datan välittämiseen kytke arvolähdöstä.
Ehdolliset haarat
Section titled “Ehdolliset haarat”Ne eivät ole erillinen mekanismi: ne ovat lähtöportteja, joilla on rooli, ja rooli ohjaa niiden väriä.
| Lohko | Lähdöt |
|---|---|
| If | then / else |
| While, Do…While | then (silmukan runko) |
| Assert | then (onnistuminen) / else (epäonnistuminen) |
| Retry | attempt / exhausted |
| Schema validate | valid / invalid / errors |
| Switch | yksi portti tapausta kohti sekä default |
| Socket.IO-yhteys | yksi portti kutakin ilmoitettua tapahtumaa kohti sekä others |
Kytkennän valitsimet
Section titled “Kytkennän valitsimet”Kytkentä voi kantaa valitsinta: polkua, joka sovelletaan matkalla olevaan arvoon.
data.items[0].idbody['user-id']headers["content-type"]statusMuodot a.b, a[0], a['key'] ja a["key"] hyväksytään. JSONia sisältävä
segmentti jäsennetään lennossa; polku, joka ei vastaa mitään, tuottaa arvon
undefined.
Restorm päättelee joskus valitsimen itse kytkentähetkellä, kun lähteellä on staattinen esikatselu, joka supistuu yhdeksi yksinkertaiseksi arvoksi. Voit aina korvata sen tai tyhjentää sen.