Portlar ve bağlantılar
Portları anlamak, bir kutunun ne zaman çalıştığını anlamaktır. Bu sayfa modelin referansıdır.
Üç örtük port
Section titled “Üç örtük port”Her kutu bunlara sahiptir, ama yapılandırmasında görünmezler:
| Port | Yön | Akış | Rol |
|---|---|---|---|
in | Giriş | Sinyal | Tetikleyici. Birden çok gelen bağlantı kabul edilir |
error | Çıkış | Değer + sinyal | Başarısızlık yolu |
done | Çıkış | Sinyal | Kutunun ve aşağı akıştaki tüm alt grafiğinin tamamlanmasından sonra yayılır |
Üç kutuda error portu yoktur: Çıktı, Şimdi ve Retry (bu son kutu
kendisi bir hata sınırıdır). İkisinde done yoktur: Çıktı ve Throw.
Akış türleri
Section titled “Akış türleri”| Akış | Zihinsel simge | Davranış |
|---|---|---|
| Değer | Bir veri | Bir değer taşır; aynı zamanda tetikleyici olarak iş görür |
| Sinyal | Bir vuruş | Hiçbir şey taşımaz, yalnızca tetikler |
| İkisi birlikte | Bir değer taşır ve tetikler |
Yasaklı tek birleşim: saf sinyal çıkışından saf değer girişine. Değere konacak hiçbir şey olmazdı.
Veri türleri
Section titled “Veri türleri”any · json · number · string · boolean · duration · response ·
status · list · object.
Türleme çoğunlukla görsel rahatlık içindir; katı tek bir istisnası vardır:
liste türündeki bir giriş (Listeye ekle ve Listeden kaldır eylemlerinin
list portu), listeyle uyumlu olmayan bir kaynağı reddeder. json ve list
birbiriyle uyumludur; düz bir object uyumlu değildir.
- Bir giriş portu yalnızca tek bir bağlantı kabul eder. Grafiği okunabilir kılan şey budur: bir değer, bir kaynak.
indışında; o, istendiği kadar bağlantı kabul eder.- Bir çıkış, istendiği kadar girişi besleyebilir.
Bir kutu ne zaman çalışır
Section titled “Bir kutu ne zaman çalışır”Sırasıyla üç kural:
- Kökler başlar. Gelen bağlantısı olmayan her kutu, senaryo başlatıldığında tetiklenir. “Başlangıç” kutusu diye bir şey yoktur.
- Yalnızca bağlanmış girişler beklenir. Bir kutu, gerçekten bağlı olan her giriş portu bir değer aldığında çalışır. Bağlanmamış bir port asla beklenmez. Değerler bellekte tutulur: bir giriş, aldığı son değeri saklar.
inportu bariyer kurar. Birden çok bağlantıyla beslendiğinde hepsinin gelmesini bekler, sonra bir kez tetikler. Modeldeki “şu üç dalın bitmesini bekle” davranışı budur.
İstisna: her olayda yeniden çalıştırma
Section titled “İstisna: her olayda yeniden çalıştırma”“Alınan her olayda yeniden çalıştır” seçeneği (kutunun bağlam menüsü), bağlanmış tüm girişleri bloke etmeyen “veya” kapılarına dönüştürür: kutu, herhangi bir porta gelen her değerde yeniden tetiklenir.
İki kullanımı vardır: bir akışı mesaj mesaj işlemek ve bir tamamlanma döngüsünün (kendi üzerine geri dönen bir grafiğin) kilidini açmak.
done değer çıkışına karşı
Section titled “done değer çıkışına karşı”Pratikte en işe yarar ayrım budur:
- bir değer çıkışı, kutu sonucunu ürettiği anda yayar;
doneise ek olarak bu sonucu tüketen her şeyin bitmesini bekler.
Sıralama için — “bunların hepsini yap, sonra temizle” — done portundan
bağlayın. Bir veri geçirmek için değer çıkışından bağlayın.
Koşullu dallar
Section titled “Koşullu dallar”Ayrı bir mekanizma değildir: bunlar bir rol taşıyan çıkış portlarıdır ve bu rol renklerini belirler.
| Kutu | Çıkışlar |
|---|---|
| If | then / else |
| While, Do…While | then (gövde) |
| Assert | then (başarı) / else (başarısızlık) |
| Retry | attempt / exhausted |
| Şema doğrulama | valid / invalid / errors |
| Switch | her durum için bir port, artı default |
| Socket.IO bağlantısı | bildirilen her olay için bir port, artı others |
Bağlantı seçicileri
Section titled “Bağlantı seçicileri”Bir bağlantı bir seçici taşıyabilir: aktarılmakta olan değere uygulanan bir yol.
data.items[0].idbody['user-id']headers["content-type"]statusa.b, a[0], a['clé'] ve a["clé"] biçimleri kabul edilir. JSON içeren bir
segment anında çözümlenir; hiçbir şeye karşılık gelmeyen bir yol undefined
verir.
Restorm, kaynağın tek bir ilkel değere indirgenen statik bir önizlemesi olduğunda, bağlama sırasında bazen seçiciyi kendiliğinden çıkarır. Onu her zaman değiştirebilir ya da boşaltabilirsiniz.