İçeriğe geç

Portlar ve bağlantılar

Portları anlamak, bir kutunun ne zaman çalıştığını anlamaktır. Bu sayfa modelin referansıdır.

Her kutu bunlara sahiptir, ama yapılandırmasında görünmezler:

PortYönAkışRol
inGirişSinyalTetikleyici. Birden çok gelen bağlantı kabul edilir
errorÇıkışDeğer + sinyalBaşarısızlık yolu
doneÇıkışSinyalKutunun 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ışZihinsel simgeDavranış
DeğerBir veriBir değer taşır; aynı zamanda tetikleyici olarak iş görür
SinyalBir vuruşHiçbir şey taşımaz, yalnızca tetikler
İkisi birlikteBir 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ı.

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.
  • in dışında; o, istendiği kadar bağlantı kabul eder.
  • Bir çıkış, istendiği kadar girişi besleyebilir.

Sırasıyla üç kural:

  1. Kökler başlar. Gelen bağlantısı olmayan her kutu, senaryo başlatıldığında tetiklenir. “Başlangıç” kutusu diye bir şey yoktur.
  2. 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.
  3. in portu 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.

Pratikte en işe yarar ayrım budur:

  • bir değer çıkışı, kutu sonucunu ürettiği anda yayar;
  • done ise 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.

Ayrı bir mekanizma değildir: bunlar bir rol taşıyan çıkış portlarıdır ve bu rol renklerini belirler.

KutuÇıkışlar
Ifthen / else
While, Do…Whilethen (gövde)
Assertthen (başarı) / else (başarısızlık)
Retryattempt / exhausted
Şema doğrulamavalid / invalid / errors
Switchher durum için bir port, artı default
Socket.IO bağlantısıbildirilen her olay için bir port, artı others

Bir bağlantı bir seçici taşıyabilir: aktarılmakta olan değere uygulanan bir yol.

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

a.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.