Xem 11,088
Cập nhật thông tin chi tiết về Khái Niệm Callback Trong Nodejs mới nhất ngày 24/05/2022 trên website Doisonggiaitri.com. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất. Cho đến thời điểm hiện tại, bài viết này đã đạt được 11,088 lượt xem.
--- Bài mới hơn ---
Để giải thích Callback là gì chúng ta hãy xem một tình huống như sau:
Bạn tới một cửa hàng để mua một món đồ mà bạn yêu thích, nhân viên cửa hàng nói với bạn rằng hiện tại món đồ đó đã hết, bạn để lại số điện thoại và yêu cầu họ gọi lại ngay sau khi có hàng. Sau đó bạn có thể đi chơi hoặc làm một công việc nào đó và không cần quan tâm tới cửa hàng đó nữa, cho tới khi bạn nhận được điện thoại thông báo của hàng đã có món đồ mà bạn yêu thích.
Máy chủ NodeJS có thể nhận rất nhiều các yêu cầu (request) từ rất nhiều người dùng. Vì vậy để nâng cao khả năng phục vụ, tất cả các API của NodeJS được thiết kế hỗ trợ Callback. “callback” là môt hàm (function), nó sẽ được gọi khi NodeJs hoàn thành một tác vụ (task) cụ thể.
Trong NodeJS các API được thiết kế để hỗ trợ Callback. Giả sử rằng bạn đang viết một chương trình để đọc 2 tập tin. Để làm việc này bạn sử dụng module fs, nó cung cấp cho bạn 2 hàm để đọc file là readFile và readFileSync. Chúng ta sẽ tìm hiểu sự khác biệt giữa 2 hàm này.
Blocking
readFileSync là một hàm đọc file một cách đồng bộ (synchronous), chính vì vậy trong khi hàm này đang thực thi nó sẽ chặn (block) chương trình thực thi các dòng code tiếp theo.
Mở cửa sổ CMD và thực thi tập tin chúng tôi .
Và đây là kết quả mà bạn nhận được:
Non Blocking
Bạn nên sử dụng hàm readFile để đạt được hiệu suất tốt hơn cho chương trình. Hàm này đọc file một cách “không đồng bộ” (asynchronous), nó “không chặn” (non block) chương trình thực thi các dòng code tiếp theo, nói cách khác là chương trình không đợi hàm này hoàn thành. Nhưng khi hàm này thực hiện xong nhiệm vụ của nó, nó sẽ gọi tới hàm Callback.
Xem ví dụ đầy đủ:
non-blocking-example.js
var fs = require("fs");
// A Callback function!
function readFinishedFile1(err, data) {
if (err) console.log(err);
console.log("- Data of file 1: ");
console.log(data.toString());
}
// A Callback function!
function readFinishedFile2(err, data) {
if (err) console.log(err);
console.log("- Data of file 2: ");
console.log(data.toString());
}
console.log("n");
console.log("Read File 1");
fs.readFile('C:\test\file1.txt', readFinishedFile1);
console.log("n");
console.log("Read File 2");
fs.readFile('C:\test\file2.txt', readFinishedFile2);
console.log("n");
console.log("Program Ended n");
--- Bài cũ hơn ---
Bạn đang xem bài viết Khái Niệm Callback Trong Nodejs trên website Doisonggiaitri.com. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất. Chúc bạn một ngày tốt lành!