Callback trong Node.js là gì?

Nếu mới bắt đầu làm quen với Node.js và bạn đang tìm hiểu về Callback. Trong bài viết dưới đây Taimienphi.vn sẽ giới thiệu cho bạn về Callback trong Node.js là gì cũng như ví dụ về callback nhé.

Trong các bài viết trước Taimienphi.vn đã giới thiệu cho bạn về REPL và NPM trong Node.js. Để tiếp tục chủ đề về Node.js, bài viết dưới đây Taimienphi.vn sẽ giới thiệu tiếp cho bạn Callback trong Node.js là gì?

callback trong node js la gi

Tìm hiểu Callback trong Node.js

Callback trong Node.js là gì?

Callback trong Node.js là một dạng hàm không đồng bộ. Hàm này được gọi sau khi hoàn thành tác vụ cụ thể nào đó. Node sử dụng khá nhiều hàm callback, cụ thể tất cả API của Node được viết theo cách của hàm callback.

Để hiểu rõ hơn hàm callback trong Node.js, bạn có thể hình dung một hàm để đọc file sẽ bắt đầu đầu đọc file và trả về phần điều khiển để môi trường thực thi lệnh tiếp theo. Sau khi file I/O hoàn tất, nó sẽ gọi hàm callback, sử dụng nội dung của file làm tham số. Vì vậy không có blocking hoặc phải chờ khi đọc/ghi file.

Về cơ bản, hàm callback giúp Node.js thực thi số lượng request nhiều hơn mà không cần phải chờ kết quả trả về.

Ví dụ về Blocking Code

Tạo một file text đặt tên là input.txt có chứa nội dung dưới đây:

Tutorials Point is giving self learning content

to teach the world in simple and easy way!!!!!

Tạo file js đặt tên là main.js, chứa đoạn mã dưới đây:

var fs = require("fs");

var data = fs.readFileSync('input.txt');

console.log(data.toString());

console.log("Program Ended");

Tiếp theo chạy file main.js để xem kết quả bằng cách mở command prompt Node.js và nhập lệnh dưới đây vào:

$ node main.js

callback trong node js la gi 2

Xác minh đầu ra:

Tutorials Point is giving self learning content

to teach the world in simple and easy way!!!!!

Program Ended

Ví dụ về Non-Blocking Code

Tạo file text đặt tên là input.txt có chứa nội dung dưới đây:

Tutorials Point is giving self learning content

to teach the world in simple and easy way!!!!!

Cập nhật file main.js bằng cách sử dụng đoạn mã dưới đây:

var fs = require("fs");

fs.readFile('input.txt', function (err, data) {

if (err) return console.error(err);

console.log(data.toString());

});

console.log("Program Ended");

Tiếp theo mở command prompt Node.js và nhập lệnh dưới đây vào để chạy main.js và xem kết quả:

$ node main.js

callback trong node js la gi 3

2 ví dụ trên đây giải thích các cơ chế gọi blocking và non-blocking. Trong đó:

- Ví dụ đầu tiên cho thấy chương trình sẽ chặn cho đến khi nó đọc file và sau đó kết thúc chương trình.
- Ví dụ thứ 2 cho thấy chương trình không chờ đọc file và in "Program Ended" đồng thời, chương trình không chặn mà tiếp tục đọc file.

Tóm lại chương trình blocking thực thi nhiều bước và trình tự khác nhau, phù hợp để thực thi các lệnh logic. Ngược lại các chương trình non-blocking không thực thi theo một thứ tự nào cả. Trong trường hợp nếu chương trình cần sử dụng dữ liệu bất kỳ để xử lý, dữ liệu đó sẽ được lưu trong chương trình blocking và được thực thi theo thứ tự.

Bài viết trên đây Taimienphi.vn vừa giới thiệu cho bạn về Callback trong Node.js. Trong các bài viết tiếp theo Taimienphi.vn sẽ giới thiệu tiếp cho bạn về Event trong Node.js là gì.

https://thuthuat.taimienphi.vn/callback-trong-node-js-la-gi-41268n.aspx
Ngoài ra nếu có bất kỳ thắc mắc hoặc câu hỏi nào cần giải đáp, bạn đọc có thể để lại ý kiến của mình trong phần bình luận bên dưới bài viết nhé.

Tác giả: Phương Anh     (4.0★- 3 đánh giá)  ĐG của bạn?

  

Bài viết liên quan

Cách cài đặt Node.js trên UNIX/Linux/Mac OS X, và SunOS
Stream trong Node.js là gì?
NPM trong Node.js là gì?
Đối tượng Global trong Node.js
Cách cài đặt Node.js trên Ubuntu 18.04
Từ khoá liên quan:

Callback trong Node.js

, hàm Callback trong Node.js, Node.js,

SOFT LIÊN QUAN
  • Node.js for Mac

    Xây dựng, phát triển ứng dụng mạng

    Node.js for Mac là nền tảng mã nguồn mở dựa trên ngôn ngữ lập trình JavaScript với tính năng chính là dựng nhanh các ứng dụng web và phát triển các ứng dụng mạng theo mô hình I/O hướng sự kiện không đồng bộ. Với Node.js ...
  • Node.js Nền tảng quản lý và phát triển ứng dụng mạng hiệu quả
  • Bitnami MEAN for Mac Cài đặt, tạo môi trường phát triển Node.js và MongoDB

Tin Mới

  • 3 Bài văn mẫu Kể lại kỉ niệm đáng nhớ với thầy, cô giáo của em

    Bạn có nhớ lần đầu tiên được thầy cô khen ngợi hay giúp đỡ không? Những khoảnh khắc ấy luôn để lại dấu ấn sâu sắc trong lòng chúng ta. Bài viết này sẽ giúp bạn hồi tưởng và chia sẻ những kỷ niệm đáng nhớ với người thầy,

  • 1 tỷ có mấy số 0

    Nếu đang cần tính toán, quy đổi các chữ số hàng tỷ ra các con số hàng trăm, vạn, triệu,..., nhưng không nhớ chính xác 1 tỷ có mấy số 0 hay 1 triệu có mấy số 0 thì bài viết này sẽ rất hữu ích với bạn. Vận dụng cách ghi nhớ các số, chữ số hàng tỷ, bạn đọc sẽ nhanh chóng tính toán và quy đổi sang các giá trị tương ứng

  • Cách đăng ký tài khoản Turnitin, kiểm tra đạo văn

    Turnitin là phần mềm check, kiểm tra đạo hiệu quả, được nhiều giảng viên, người hướng dẫn luận văn và các em học sinh tại Việt Nam sử dụng. Bằng cách đăng ký tài khoản Turnitin và gửi lên bài làm cá nhân, bạn có thể dễ dàng kiểm tra, phát hiện các lỗi trích dẫn, sao chép không phù hợp và sửa đổi. Chi tiết cách đăng ký tài khoản, công cụ kiểm tra đạo văn đã được tổng hợp dưới đây, mời bạn đọc tham khảo.

  • Quân Baby đánh gì, cách chơi quân Baby trong đế chế, AOE

    Khi nhắc tới Babylonian, người ta thường nhắc tới vườn treo Babaylon - 1 kỳ quan thiên nhiên. Còn trong AOE, nguồn gốc cũng như cách chơi đế chế với quân Babylonian vẫn chưa được nhiều người biết tới.