Wait (Chờ)
Tạm dừng flow một khoảng thời gian cố định.
Mục đích
Giữ flow một số mili giây — để hiệu ứng chạy xong, màn hình ổn định, hay cuộc gọi mạng trở về trước bước kế.
Nó là đồng hồ thuần túy. Nó không nhìn màn hình.
Khi nào dùng
- Để hiệu ứng hoặc chuyển cảnh hoàn tất trước khi đọc màn.
- Ổn định hiển thị sau Swipe hay Zoom.
- Chủ ý điều nhịp flow để nó không hành động ở tốc độ máy.
Khi nào không dùng
- Chờ thứ gì xuất hiện. Find Image hoặc Check Region với timeout làm việc đó đúng cách: trả về ngay khoảnh khắc thứ đó hiện thay vì luôn đốt trọn khoảng trễ.
- Vá sự chập chờn. Wait "thường thì chạy" là race condition khoác thêm bước.
Chờ điều kiện khi có điều kiện. Chờ thời gian chỉ khi không gì quan sát được đánh dấu điểm kết thúc của thứ bạn chờ.
Điều kiện
Không có. Wait chạy không cần thiết bị kết nối.
Cách nó chạy
- Kiểm thời lượng hợp lệ (50–120000 ms).
- Chế độ random: bốc một trễ nguyên đều giữa min và max cho lần thực thi này.
- Ngủ theo các lát nhỏ hủy được để một cú Stop có hiệu lực nhanh.
- Nếu lần chạy bị hủy trong lúc chờ, rẽ Cancelled; nếu không rẽ Success và báo thời gian đã chờ thật.
Ngủ theo lát là lý do một Wait 60 giây không chặn bạn dừng lần chạy.
Thiết lập
| Thiết lập | Kiểu | Khoảng | Mặc định | Tác dụng |
|---|---|---|---|---|
| Wait mode | lựa chọn | fixed, random | fixed | Một trễ cố định, hay trễ ngẫu nhiên mới mỗi lần thực thi |
| Duration | integer | 50–120000 ms | — | Bắt buộc. Trễ cố định, và giá trị dự phòng nếu cặp random thiếu |
| Duration min | integer | 50–120000 ms | — | Cận dưới chế độ random |
| Duration max | integer | 50–120000 ms | — | Cận trên chế độ random |
| Reason | string | ≤ 500 ký tự | — | Ghi chú hiện trong log giải thích vì sao có khoảng nghỉ này |
Chế độ random
Với waitMode: random, runtime bốc trễ nguyên đều mới trong [min, max] mỗi lần thực thi. Một Wait trong vòng lặp vì thế nghỉ khác nhau từng lượt.
Điều này quan trọng hai lẽ: nó chặn flow phát ra chữ ký thời gian hoàn hảo đều, và nó tự nhiên dàn tải khi nhiều instance chạy cùng flow.
Duration vẫn bắt buộc — nó là giá trị cố định và dự phòng nếu cặp random không đủ.
Hãy dùng ô Reason
Reason không tốn gì và hiện trong log lần chạy. "để bản đồ ổn định sau căn giữa" cho bạn biết sáu tháng nữa vì sao 900 ms đó tồn tại. Con số ma thuật không ghi chú là cách flow mục ruỗng.
Port
| Port | Đi vào khi | Bắt buộc |
|---|---|---|
| Success | Trọn khoảng chờ trôi qua (output: số ms đã chờ thật) | Có |
| Cancelled | Lần chạy bị dừng trong lúc chờ | Không — không bao giờ được đi |
| Fatal | Thời lượng ngoài 50–120000 ms | Không — không bao giờ được đi |
Wait không có port Failure và Timeout. Một khoảng chờ không thể hỏng; nó chỉ có thể bị hủy hoặc cấu hình sai.
Ví dụ cơ bản
Để hiệu ứng mở chạy xong:
- Duration:
1000ms - Reason:
"opening animation"
Ví dụ thực tế — ổn định sau cử chỉ
Khoảng ổn định ngẫu nhiên hấp thụ chênh lệch giữa máy nhanh và máy chậm, và phép phát hiện sau đó xác nhận kết quả thay vì giả định.
Ví dụ nâng cao — điều nhịp vòng lặp
Trong vòng lặp lặp một hành động nhiều lần, trễ cố định làm mọi lượt y hệt nhau. Trễ ngẫu nhiên thì không:
- Wait mode: random
- Duration min:
1000, max:1500 - Reason:
"nhịp giống người giữa các chuyến"
Best practices
- Thay Wait bằng phát hiện ở mọi nơi có điều kiện. Đây là cú thắng tốc độ lớn nhất trong đa số flow.
- Ngẫu nhiên hóa các khoảng chờ lặp lại. Trễ cố định trong vòng lặp vừa chậm vừa đều hơn mức cần.
- Luôn điền Reason.
- Ưu tiên một Wait chủ đích hơn nhiều Wait rải rác. Thấy ba Wait liền nhau nghĩa là flow đang đoán mò.
- Không bao giờ dùng Wait để "làm retry chạy". Cấu hình backoff trên retry policy của node.