ctx.exitAll()
Menghentikan event flow saat ini dan semua event flow berikutnya yang dipicu pada penjadwalan event yang sama. Sering digunakan saat perlu segera menghentikan semua event flow pada event saat ini karena error global atau validasi izin.
Skenario Penggunaan
ctx.exitAll() umumnya digunakan pada konteks berikut yang dapat mengeksekusi JS, dan saat perlu menghentikan event flow saat ini dan event flow berikutnya yang dipicu oleh event tersebut secara bersamaan:
Perbedaan dengan
ctx.exit():ctx.exit()hanya menghentikan event flow saat ini;ctx.exitAll()akan menghentikan event flow berikutnya yang belum dieksekusi pada penjadwalan event saat ini.
Definisi Tipe
Memanggil ctx.exitAll() akan melempar FlowExitAllException internal, yang ditangkap oleh engine event flow untuk menghentikan instance event flow saat ini dan event flow berikutnya pada event yang sama. Setelah dipanggil, statement tersisa pada kode JS saat ini tidak akan dieksekusi.
Perbandingan dengan ctx.exit()
Catatan Mode Eksekusi
- Eksekusi sekuensial (sequential): event flow pada event yang sama dieksekusi secara berurutan; setelah salah satu event flow memanggil
ctx.exitAll(), event flow berikutnya tidak akan dieksekusi lagi - Eksekusi paralel (parallel): event flow pada event yang sama dieksekusi secara paralel; ketika satu event flow memanggil
ctx.exitAll()tidak akan menginterupsi event flow lain yang sudah berjalan paralel (masing-masing independen)
Contoh
Menghentikan Semua Event Flow Saat Validasi Izin Gagal
Menghentikan Saat Validasi Pre-Global Tidak Lulus
Pemilihan dengan ctx.exit()
Memberikan Tip Sebelum Menghentikan
Hal yang Perlu Diperhatikan
- Setelah memanggil
ctx.exitAll(), kode berikutnya pada JS saat ini tidak akan dieksekusi; disarankan menjelaskan alasannya kepada pengguna melaluictx.message,ctx.notification, atau popup sebelum memanggil - Dalam kode bisnis biasanya tidak perlu menangkap
FlowExitAllException, biarkan engine event flow yang menanganinya - Jika hanya perlu menghentikan event flow saat ini tanpa mempengaruhi event flow berikutnya, gunakan
ctx.exit() - Pada mode paralel,
ctx.exitAll()hanya menghentikan event flow saat ini, tidak menginterupsi event flow lain yang sudah berjalan paralel
Terkait
- ctx.exit(): Hanya menghentikan event flow saat ini
- ctx.message: Pesan tip
- ctx.modal: Popup konfirmasi

