Đăng ký callback khi thoát (register_atexit)
Khai báo
original_callback = register_atexit(name, callback)
Tham số
- name
Chuỗi, bắt buộc. Mã định danh của callback được đăng ký; dùng lại cùngnamesẽ thay thế callback hiện có. - callback
Hàm, bắt buộc. Hàm sẽ chạy khi tập lệnh thoát; hãy giữ hàm gọn nhẹ và an toàn khi được gọi nhiều lần. Truyềnnilđể hủy đăng ký callback củanamenày.
Giá trị trả về
- original_callback
Hàm. Callback trước đó được đăng ký cùng tên. Trả vềnilnếu chưa từng có callback; bạn có thể dùng giá trị này để khôi phục callback cũ khi cần.
Mô tả
Các callback đăng ký bằng
register_atexitsẽ chạy khi tập lệnh thoát, kể cả khi người dùng dừng tập lệnh bằng nút âm lượng; chúng được thực thi trước khi Lua thu gom rác.
Thứ tự thực thi của các callback có tên khác nhau không được đảm bảo; nếu cần đúng thứ tự, hãy điều phối bên trong một callback duy nhất.
Giữ công việc trong callback thật ngắn để không làm chậm quá trình thoát.
Hàm này chỉ khả dụng từ phiên bản 20250705 trở đi.
Ví dụ
register_atexit("cleanup", function()
sys.toast("Dọn dẹp tài nguyên trước khi thoát")
sys.msleep(300)
end)
while true do
sys.toast("Hãy thử dừng tập lệnh bằng nút âm lượng\n" .. os.date("%Y-%m-%d %H:%M:%S"))
sys.msleep(1000)
end
Lưu ý: Sử dụng sys.toast, sys.msleep