Chuyển tới nội dung chính

Loop (Vòng lặp)

Đánh dấu đỉnh của vùng lặp. Mọi thứ giữa nó và Loop End cặp đôi được lặp lại.

Mục đích

Lặp một khối node — số lần cố định, khi điều kiện còn đúng, hoặc đến khi điều kiện thành đúng. Dùng để cày một việc N lần, thử đến khi thứ gì xuất hiện, hay xử lý danh sách.

Bạn vẽ chuỗi node thân trơn. Định tuyến vào, lặp và ra được sinh cho bạn — không dây vòng ngược nào phải vẽ, không port lặp nào trên canvas.

Khi nào dùng

  • Lặp việc số lần biết trước.
  • Tiếp tục khi tài nguyên còn (While).
  • Thử lại đến khi đạt trạng thái (Until).
  • Duyệt kèm biến đếm.

Khi nào không dùng

  • Cho "làm đến khi đủ chỉ tiêu" đơn giản khi bộ đếm Variable cộng If rõ hơn và sống qua rẽ nhánh tốt hơn.
  • Retry một node chập chờn — dùng retry policy của node đó.
  • Poll chờ thứ gì hiệnFind Image với timeout dài đã tự poll.

Điều kiện

  • Một Loop End cặp đôi. Vùng được kiểm lúc Save.
  • Giá trị Max iterations.
  • While/Until cần điều kiện boolean.
  • Biến đếm, nếu dùng, phải khai trước dạng số.

Cách nó chạy

Mọi chế độ đều dừng ở Max iterations. Điều kiện While không bao giờ lật vẫn kết thúc.

Thiết lập

Thiết lậpKiểuKhoảngGhi chú
Modelựa chọncount, while, untilBắt buộc
Max iterationsinteger1–1000Bắt buộc. Trần an toàn mọi chế độ. Nhận {{biến}}
Conditionbiểu thức≤ 1000 ký tựBắt buộc cho While/Until; phải boolean
Counter variableđường dẫn biếnTùy chọn; nhận chỉ số lượt, từ 0

While với Until

  • While lặp khi điều kiện đúng — dừng khi nó thành sai.
  • Until lặp đến khi điều kiện đúng — dừng khi nó thành đúng.

Chúng đối nhau. Chọn nhầm cho vòng lặp hoặc chạy một lượt hoặc chạy tới trần.

Max iterations nhận biến

maxIterations nhận tham chiếu {{biến}} nguyên chuỗi, nên số lượt cấp được theo lần chạy dưới dạng Flow Input:

Max iterations: {{items_per_trip}}

Đây là cách một flow đã lưu xử lý "3 mục" lẫn "10 mục" không cần sửa.

Loop End tổng hợp được

Loop End cặp đôi tùy chọn gom output một node thân qua các lượt và lộ ra ở lối ra vòng. Các chế độ gồm last, first, collectAll, unique, successOnly, failureOnly, successCount, failureCount, và iterationCount.

iterationCount đơn giản và hữu dụng nhất — "bao nhiêu lượt thực chạy".

Port

Loop là đánh dấu vùng, không phải node rẽ nhánh. Bạn nối chuỗi success trơn từ nó vào thân; định tuyến lặp và ra sinh lúc biên dịch.

PortGhi chú
SuccessNối vào node thân đầu. Bắt buộc
FatalMode, trần, hay điều kiện không-boolean sai. Không bao giờ được đi

Dùng Break rời sớm và Continue nhảy lượt kế.

Ví dụ cơ bản

Lặp bước thu mười lần:

  • Mode: Count
  • Max iterations: 10

Ví dụ thực tế — vòng lặp giới hạn, độ dài theo biến

Hai điều kiện dừng, cả hai an toàn: vòng dừng ở số bên-gọi-cấp, hoặc sớm qua Break khi hết thứ để xử lý.

Ví dụ nâng cao — retry giới hạn kèm cờ

Loop làm vùng retry, dùng biến cờ ghi thành công:

Đây là hình cần với khi phải retry một nhóm node — retry cấp node chỉ phủ một node.

Best practices

  • Đặt Max iterations là giới hạn thật, không phải mức tối đa. Nó là bảo hiểm chống vòng vô hạn.
  • Cập nhật thứ điều kiện While/Until kiểm bên trong thân, kẻo luôn đụng trần.
  • Dùng Break cho "hết việc" thay vì để vòng quay không.
  • Khai biến đếm trước, dạng số.
  • Gắn Max iterations vào Flow Input để flow tái dùng được.
  • Canh maxNodeExecutions. Vòng 200 lượt trên 12 node là 2400 lần thực thi — nâng rào chắn flow tương xứng.

Ghi chú hiệu năng

  • Loop tự nó không tốn gì; chi phí thân nhân số lượt mới là thứ đáng kể.
  • Wait trong vòng lặp là lỗi hiệu năng phổ biến nhất: 1500 ms × 200 lượt là năm phút không làm gì.
  • Node phát hiện trong vòng chi phối chi phí. Cho chúng search region sát.
  • Chế độ tổng hợp gom dữ liệu (collectAll, unique) giữ giá trị theo lượt; ưu tiên count khi chỉ cần con số.

Ghi chú bộ nhớ

  • Mỗi lượt ghi kết quả node vào ngữ cảnh, nên vòng dài phình nodeResults đều đặn.
  • Tổng hợp collectAll giữ một mục mỗi lượt — giới hạn bởi Max iterations, nhưng là bộ nhớ thật với vòng 1000 lượt.
  • Việc chạy rất dài, ưu tiên các lần chạy theo lịch lặp lại hơn một vòng khổng lồ.

Lỗi thường gặp

LỗiHậu quảCách sửa
Điều kiện While không được cập nhậtLuôn chạy tới trầnCập nhật biến kiểm trong thân
Lẫn While với UntilChạy một lượt, hoặc tới trầnWhile = khi đúng; Until = đến khi đúng
Biến đếm chưa khaiVòng lỗiKhai dạng số trước
Thiếu Loop EndLỗi kiểm lúc SaveMỗi Loop cần cặp của nó
Trần để 1000 "cho chắc"Che bug thật, đốt lượt thực thiĐặt giới hạn thực tế
Thân vòng vượt maxNodeExecutionsChết giữa chừngNâng rào chắn flow

Khắc phục sự cố

Vòng chạy đúng một lượt. Điều kiện Until đã đúng sẵn, hoặc While đã sai sẵn.

Vòng luôn chạy tới Max iterations. Điều kiện không bao giờ đổi — không gì trong thân cập nhật biến nó kiểm.

Lần chạy chết MAX_NODE_EXECUTIONS_EXCEEDED. Lượt × cỡ thân vượt trần flow. Nâng trong flow settings.

Break không rời vòng. Break thuộc vòng bao trong cùng. Kiểm nó nằm vùng nào.

FAQ

Số lượt tối đa? 1000.

Số lượt lấy từ biến được không? Được — maxIterations nhận {{biến}} nguyên chuỗi.

Có phải vẽ dây vòng ngược? Không. Nối chuỗi trơn từ Loop đến Loop End; định tuyến được sinh.

Lồng vòng được không? Được. Break và Continue áp cho vòng bao trong cùng.

Node liên quan

  • Break — rời vòng sớm
  • Continue — nhảy lượt kế
  • Variable — bộ đếm và cờ
  • If — điều kiện trong thân
  • Sub Flow — thay thế sạch cho thân vòng khổng lồ

Trang liên quan