Có bất kỳ câu hỏi nào?

Hãy tìm kiếm kết quả bên dưới để được giải đáp, trên mọi lĩnh vực

Callback trong JavaScript là gì? Ví dụ cụ thể

Trong JavaScript, một “callback” là một hàm được truyền như một đối số vào một hàm khác, và sau đó được gọi (hoặc thực thi) bên trong hàm đó để hoàn thành một loại công việc nào đó. Phương thức callback rất phổ biến trong việc lập trình bất đồng bộ trong JavaScript, mặc dù nó cũng có thể được sử dụng cho lập trình đồng bộ.

Đặc Điểm của Callback:

Lập Trình Bất Đồng Bộ:

  • Trong môi trường bất đồng bộ như JavaScript (đặc biệt trong môi trường Node.js), chúng ta thường xử lý các hoạt động không đồng bộ như truy cập mạng, đọc/ghi file, truy vấn cơ sở dữ liệu, v.v. Callback được sử dụng để xử lý kết quả hoặc lỗi sau khi hoạt động không đồng bộ kết thúc.

Hàm Higher-Order:

  • Trong JavaScript, hàm có thể nhận hàm khác làm đối số hoặc trả về một hàm, và các hàm như vậy được gọi là “higher-order functions”. Callback là một ví dụ của hàm được truyền như một đối số.

Kiểm Soát Luồng Chương Trình:

  • Callback giúp kiểm soát thời điểm một chức năng cụ thể được thực hiện, đặc biệt quan trọng trong các hoạt động bất đồng bộ.

Ví Dụ:

Giả sử bạn có một hàm doWork() và bạn muốn gọi một hàm khác, onFinished(), sau khi doWork() hoàn thành công việc của mình. Bạn có thể truyền onFinished như một callback vào doWork:

function onFinished() {
    console.log('Công việc đã hoàn thành!');
}

function doWork(callback) {
    // Thực hiện một số công việc tại đây...
    // Sau khi hoàn thành công việc
    callback();  // Gọi callback
}

doWork(onFinished);

Trong ví dụ trên, onFinished được truyền như một callback vào doWork và được gọi sau khi doWork hoàn thành công việc của mình.

Lưu Ý:

  • Một điểm lưu ý quan trọng khi sử dụng callback là “Callback Hell” hoặc “Pyramid of Doom”, nơi nhiều hàm callback lồng nhau dẫn đến mã khó đọc và khó bảo trì. Để giải quyết vấn đề này, các phương pháp như Promises và Async/Await được giới thiệu trong các phiên bản mới hơn của JavaScript.
Tags: