ctx.exitAll()
Kết thúc luồng sự kiện hiện tại và tất cả các luồng sự kiện tiếp theo được kích hoạt trong cùng một lần điều phối sự kiện. Thường dùng khi cần dừng ngay lập tức tất cả luồng sự kiện cùng sự kiện do lỗi toàn cục hoặc validate quyền.
Kịch bản áp dụng
ctx.exitAll() thường được sử dụng trong các ngữ cảnh có thể thực thi JS sau, và khi cần đồng thời dừng luồng sự kiện hiện tại và luồng sự kiện tiếp theo được kích hoạt bởi sự kiện đó:
Khác biệt với
ctx.exit():ctx.exit()chỉ kết thúc luồng sự kiện hiện tại;ctx.exitAll()sẽ kết thúc các luồng sự kiện tiếp theo chưa thực thi trong điều phối sự kiện hiện tại.
Định nghĩa kiểu
Gọi ctx.exitAll() sẽ ném FlowExitAllException nội bộ, được engine luồng sự kiện bắt và dừng instance luồng sự kiện hiện tại và các luồng sự kiện tiếp theo cùng sự kiện. Một khi đã gọi, các câu lệnh còn lại trong code JS hiện tại sẽ không được thực thi.
So sánh với ctx.exit()
Giải thích về chế độ thực thi
- Thực thi tuần tự (sequential): Các luồng sự kiện cùng sự kiện thực thi theo thứ tự; sau khi bất kỳ luồng sự kiện nào gọi
ctx.exitAll(), các luồng sự kiện tiếp theo sẽ không thực thi nữa - Thực thi song song (parallel): Các luồng sự kiện cùng sự kiện thực thi song song; khi một luồng sự kiện gọi
ctx.exitAll()sẽ không gián đoạn các luồng sự kiện khác đang chạy đồng thời (mỗi cái độc lập)
Ví dụ
Kết thúc tất cả luồng sự kiện khi validate quyền thất bại
Kết thúc khi validate trước toàn cục không qua
Lựa chọn với ctx.exit()
Thông báo trước rồi kết thúc
Lưu ý
- Sau khi gọi
ctx.exitAll(), code tiếp theo trong JS hiện tại sẽ không được thực thi; khuyến nghị thông báo lý do cho người dùng quactx.message,ctx.notificationhoặc popup trước khi gọi - Trong code nghiệp vụ thường không cần bắt
FlowExitAllException, để engine luồng sự kiện xử lý - Nếu chỉ cần dừng luồng sự kiện hiện tại mà không ảnh hưởng đến luồng sự kiện tiếp theo, sử dụng
ctx.exit() - Trong chế độ song song,
ctx.exitAll()chỉ kết thúc luồng sự kiện hiện tại, không ngắt các luồng sự kiện đang chạy đồng thời
Liên quan
- ctx.exit(): Chỉ kết thúc luồng sự kiện hiện tại
- ctx.message: Tin nhắn thông báo
- ctx.modal: Popup xác nhận

