Nói một cách đơn giản và dễ hiểu thì Callback Function có thể được hiểu là một function A được truyền vào một function B thông qua danh sách các tham số của B. Lúc này tại hàm B sẽ gọi đến hàm A để thực hiện một chức năng nào đó mà A đang nắm giữ. Lấy ví dụ trực quan thì các gọi hàm của JQuery là một hàm Callback
$('#callback').click(function(){ // đây là callback function });
Còn trong JavaScript thuần thì nó sẽ như thế này
setTimeout(function(){ // day la callback function }, 200);
Thường thì JavaScript là ngôn ngữ truyền theo kiểu đồng bộ và theo hướng sự kiện. Nên đặc biệt là khi ta muốn hứng giá trị từ kết quả mà api trả về để đưa vào một hàm sẽ rất khó khăn. Do api và hàm ở ngoài nó ở 2 timeline hoàn toàn khác nhau. Hàm thì được thực thi ngay khi tải trang xong nếu không có sự kiện kèm theo, còn kết quả thì sẽ có sau khi gọi api thành công mà api được gọi khi mới tải trang xong. Nên 2 khía cạnh này ở 2 khoảng thời gian khác nhau.
Do đó Callback sẽ được sử dụng trong những điều kiện truyền bất động như hứng kết quả api truyền vào hàm để xử lý mình sẽ ví dụ cho các bạn ở đoạn code sau:
api .done(function(result) { ketqua = result; console.log(ketqua); }); .fail(function(err) { console.log(err); });