Hàm callback là hàm được gọi bởi một hàm khác như là một tham số. Hàm callback thực thi khi một điều kiện hay một sự kiện gì đó xảy ra. Khái niệm callback gắn liền với khái niệm không đồng bộ (asynchronous). Ví dụ người dùng gửi một yêu cầu đến server và hiển thị phản hồi từ server đến người dùng, các lệnh có thể như sau:
yeu_cau = chuan_bi_yeu_cau ();//tập hợp yêu cầu phan_hoi = gui_yeu_cau (yeu_cau);// gửi yêu cầu đến server và kết quả //trả về là phản hồi từ server hien_thi (phan_hoi);// hiển thị thông điệp phản hồi
theo đúng trình tự trên, người dùng sẽ phải chờ cho đến khi server nhận, xử lí yêu cầu và gửi phản hồi trở lại mà không được phép làm bất cứ công việc gì khác và sẽ lãng phí thời gian nếu trong trường hợp mạng hay server xử lý chậm. Một giải pháp khắc phục là sử dụng hàm callback hay kĩ thuật không đồng bộ, tức là thay vì lãng phí thời gian chờ đợi, người dùng có thể làm việc khác trong khoảng thời gian này và sẽ chỉ quay lại thực hiện lệnh kế tiếp khi lệnh hiện tại hoàn tất. Các lệnh trên được viết lại như sau:
yeu_cau = chuan_bi_yeu_cau ();//tập hợp yêu cầu gui_yeu_cau (yeu_cau, function(phan_hoi){ hien_thi (phan_hoi);// hiển thị thông điệp phản hồi });// gửi yêu cầu đến server và kết quả trả về là phản hồi từ server
Hàm gui_yeu_cau có một tham số là một hàm callback để gọi hàm hiển thị phản hồi từ server.
Ý kiến bài viết