Callback Function Là Gì?

  • Sunday 31/03/2024

Tìm Hiểu Về Hàm Callback Trong Javascript

1. Callback là gì?

Callback

Callback Function là một đoạn code được sử dụng như tham số truyền vào của một hàm B nào đó. Sau khi hàm B được thực thi, thì hàm A cũng được thực thi ngay lập tức hoặc chậm 1 chút. Hoặc hiểu đơn giản hơn, hàm callback chính là một hàm được gọi khi một điều gì đó xảy ra, thường là event, theo ngôn ngữ lập trình.

Hàm callback được xuất hiện từ lập trình hàm và cụ thể hóa cách dùng của các hàm như argument. Trong JavaScript, mỗi hàm sẽ là một first-class object. Hay nói cách khác, mỗi hàm là một object và có thể được sử dụng như những object khác (string, number…). Nhờ vậy, chúng ta có thể sử dụng hàm này như tham số cho một hàm khác. Đây được xem là ý tưởng cốt lõi của Callback function.

2. Tại sao cần sử dụng Callback function?

Phần lớn thời gian, chúng ta tạo ra chương trình và phần mềm theo hướng xử lý đồng bộ. Có nghĩa là bước 2 chỉ được thực hiện, khi bước 1 hoàn thành, hay khi nào hoàn thành 1 chương trình xong thì chương trình khác mới được thực hiện. Thông thường, khi chúng ta yêu cầu dữ liệu từ một nguồn trung gian như API mở, chúng ta sẽ khó mà biết được thời gian chính xác dữ liệu sẽ được trả về.

Chúng ta muốn chờ dữ liệu xuất hiện, nhưng lại không muốn cả chương trình phải dừng lại khi tìm kiếm dữ liệu. Đây chính là lúc callback phát huy tác dụng, ngoài ra, hàm có cho phép người dùng tái sử dụng code.

Đặc biệt, trong JavaScript, hàm callback còn có ý nghĩa rất quan trọng. Bởi đây là ngôn ngữ hướng đến sự kiện. Không giống như các ngôn ngữ khác, thay vì đợi phản hồi rồi mới tiếp tục, JavaScript sẽ thực thi.

Callback function giúp người dùng đảm bảo rằng một code sẽ vẫn được thực thi khi code khác đang tiếp diễn mà không phải chờ đợi.

3. Phân loại Callback function

Callback Function được chia thành 2 nhóm chính là: synchronous (xử lý đồng bộ)asynchronous (xử lý không đồng bộ)

  • Synchronous callback function hay còn được gọi là blocking callback function. Lý giải cho thuật ngữ này vì Higher-Order Function (hàm bậc cao) sẽ không có khả năng hoàn thành nếu như 1 hàm callback chưa chạy xong.
  • Asynchronous callback hay có cách gọi khác là non-blocking callback. Hàm bậc cao có khả năng hoàn thành thực thi một cách độc lập mà không cần đợi callback function. Hàm bậc cao này đảm bảo tạo điều kiện cho callback function được thực thi trong một sự kiện sau đó.

4. Nguyên tắc khi thực hiện Callback function

  • Tham số truyền vào phải là một function: Đây chính là nguyên tắc đầu tiên, quan trọng nhất bởi nếu bạn không kiểm tra giá trị mà người dùng truyền vào là một function thì bạn không thể thực thi được
  • Khắc phục “this”: Theo nguyên tắc, callback là một hàm đơn phương nên khi bạn sử dụng từ khóa this trong hàm thì nó sẽ hiểu this là đối tượng Window Object. Lúc này, cho dù bạn định nghĩa hàm callback nằm trong một object thì không thể truy cập đến dữ liệu của object thông qua từ khóa this.
  • Callback Hell: Chúng ta đều biết, hàm callback được thực thi bên trong 1 hàm khác, sự xếp chồng các hàm callback lên nhau được gọi callback hell. Khi callback hell xuất hiện, việc xử lý chương trình sẽ rất phức tạp. Không chỉ có vậy, callback hell cũng làm cho tính thẩm mĩ của code giảm đi đáng kể, khó đọc, khó maintain.

Lưu ý: Callback trong Javascript phải là một hàm; nếu bạn truyền một kiểu khác, bạn sẽ nhận được thông báo lỗi “Callback is function” trong console. Từ khóa “this” trong callback thường được hiểu là Window Object, ngay cả khi bạn định nghĩa callback trong một object, không thể truy cập dữ liệu của object bằng từ khóa “this”.

Hi vọng bài viết này sẽ giúp bạn hiểu rõ hơn về Callback Function. Tham khảo các bài viết khác tại đây.

==================

P.A Việt Nam cung cấp đa dạng các Plan Hosting, các cấu hình Máy Chủ Ảo và Máy Chủ Riêng đáp ứng yêu cầu của khách hàng
Hosting Phổ Thông
Hosting Chất Lượng Cao

Cloud Server
Cloud Server Pro
Máy Chủ Riêng

Tham khảo các ưu đãi: https://www.pavietnam.vn/vn/tin-khuyen-mai/

Rate this post