콘텐츠로 이동

포트와 링크

포트를 이해하는 것은 박스가 언제 실행되는지를 이해하는 것입니다. 이 페이지는 그 모델의 레퍼런스입니다.

모든 박스가 가지고 있지만, 설정에는 나타나지 않습니다.

포트방향흐름역할
in입력신호트리거. 들어오는 링크를 여러 개 받아들입니다
error출력값 + 신호실패 경로
done출력신호박스 와 그 하위 그래프 전체가 완료된 뒤에 발생합니다

error 포트가 없는 박스가 세 개 있습니다. 출력, 현재, 그리고 Retry (마지막 것은 그 자체가 오류 경계입니다). done 이 없는 것은 두 개로, 출력Throw입니다.

흐름이미지동작
데이터값을 실어 나릅니다. 트리거 역할도 겸합니다
신호신호음아무것도 나르지 않고 발동만 시킵니다
둘 다값을 나르고 동시에 발동시킵니다

금지된 조합은 단 하나뿐입니다. 순수한 신호 출력에서 순수한 값 입력으로 가는 연결입니다. 값에 넣을 것이 아무것도 없기 때문입니다.

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

타입 지정은 주로 시각적 편의를 위한 것이지만, 엄격한 예외가 하나 있습니다. 목록 타입의 입력(목록에 추가목록에서 제거 액션의 list 포트)은 목록과 호환되지 않는 소스를 거부합니다. jsonlist 는 서로 호환되지만, 단순한 object 는 그렇지 않습니다.

  • 입력 포트는 링크를 하나만 받습니다. 이것이 그래프를 읽기 쉽게 만듭니다. 값도 하나, 출처도 하나입니다.
  • in 만 예외로, 원하는 만큼 링크를 받아들입니다.
  • 출력은 원하는 만큼 많은 입력에 값을 공급할 수 있습니다.

순서가 있는 규칙이 세 가지 있습니다.

  1. 루트에서 시작합니다. 들어오는 링크가 없는 박스는 시나리오가 실행될 때 점화됩니다. “시작” 박스라는 것은 없습니다.
  2. 배선된 입력만 기다립니다. 박스는 실제로 연결된 각 입력 포트가 값을 받은 시점에 실행됩니다. 배선되지 않은 포트를 기다리는 일은 없습니다. 값은 계속 기억됩니다. 입력은 마지막으로 받은 값을 보존합니다.
  3. in 포트는 배리어가 됩니다. 여러 링크에서 값을 공급받으면 모두 도착할 때까지 기다린 뒤 한 번만 발동합니다. 이 모델에서 “이 세 분기가 끝날 때까지 기다린다”에 해당합니다.

수신한 이벤트마다 재실행” 옵션(박스의 컨텍스트 메뉴)은 배선된 모든 입력을 차단하지 않는 “or” 게이트로 바꿉니다. 박스는 어떤 포트에서든 값을 받을 때마다 다시 발동합니다.

용도는 두 가지입니다. 스트림을 메시지 단위로 처리하는 것, 그리고 완료 사이클(자기 자신으로 되돌아오는 그래프)의 교착을 푸는 것입니다.

실무에서 가장 유용한 구분입니다.

  • 값 출력은 박스가 결과를 만들어 낸 즉시 발생합니다.
  • done 은 여기에 더해 그 결과를 소비하는 모든 것이 끝나기를 기다립니다.

순서를 매기고 싶을 때 — “이걸 다 하고 나서 정리한다” — 는 done 에서 배선하십시오. 데이터를 넘기려면 값 출력에서 배선하십시오.

별도의 장치가 아닙니다. 역할을 지닌 출력 포트이며, 그 역할이 색을 결정합니다.

박스출력
Ifthen / else
While, Do…Whilethen (본체)
Assertthen (성공) / else (실패)
Retryattempt / exhausted
Schema validatevalid / invalid / errors
Switch케이스마다 하나, 그리고 default
Socket.IO 연결선언한 이벤트마다 하나, 그리고 others

링크는 셀렉터를 가질 수 있습니다. 통과하는 값에 적용되는 경로입니다.

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

a.b, a[0], a['key'], a["key"] 형태를 사용할 수 있습니다. JSON을 포함한 세그먼트는 그 자리에서 해석되고, 어디에도 맞지 않는 경로는 undefined 가 됩니다.

Restorm은 배선하는 시점에 셀렉터를 스스로 추론하기도 합니다. 소스의 정적 미리보기가 단일 원시 값으로 좁혀지는 경우입니다. 추론된 값은 언제든 바꾸거나 비울 수 있습니다.