Lời hứa trong Node.js
Node.js là một môi trường thời gian chạy phổ biến cho phép các nhà phát triển xây dựng các ứng dụng hiệu quả và có thể mở rộng. Một trong những tính năng cốt lõi của Node.js là khả năng xử lý mã không đồng bộ, điều cần thiết để xây dựng các ứng dụng hiệu năng cao. Mã không đồng bộ có thể khó quản lý, đặc biệt là khi xử lý các hoạt động phức tạp hoặc các tác vụ chạy trong thời gian dài. Đây là nơi hứa hẹn xuất hiện, cung cấp một cách đơn giản và hiệu quả để xử lý các hoạt động không đồng bộ trong Node.js.
Trong bài viết này, chúng ta sẽ khám phá khái niệm về lời hứa trong Node.js và lý do tại sao chúng lại quan trọng để xây dựng các ứng dụng hiện đại.
Lời hứa là gì?
Nói một cách đơn giản, một lời hứa là một đối tượng đại diện cho một giá trị có thể chưa có sẵn. Lời hứa được sử dụng để xử lý các hoạt động không đồng bộ trong JavaScript, chẳng hạn như tạo yêu cầu mạng hoặc đọc tệp từ đĩa.
Một lời hứa có ba trạng thái:
- Đang chờ xử lý: Trạng thái ban đầu của một lời hứa, cho biết giá trị chưa khả dụng.
- Đã thực hiện: Trạng thái của một lời hứa khi hoạt động thành công và giá trị có sẵn.
- Bị từ chối: Trạng thái của một lời hứa khi thao tác không thành công và xảy ra lỗi.
Tạo một lời hứa trong Node.js
Tạo một lời hứa trong Node.js rất đơn giản. Chúng tôi sử dụng hàm tạo Promise để tạo một lời hứa mới và chuyển một hàm thực hiện thao tác không đồng bộ. Hàm nhận hai đối số, giải quyết và từ chối, cho biết thao tác có thành công hay không.
Đây là một ví dụ tạo ra một lời hứa sẽ giải quyết sau một giây chậm trễ:
const myPromise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Operation successful!');
}, 1000);
});
Xử lý kết quả lời hứa
Khi một lời hứa được tạo, chúng ta có thể sử dụng phương thức then để xử lý kết quả. Phương thức then lấy hai hàm làm đối số, một hàm để xử lý thao tác thành công và một hàm để xử lý lỗi.
Đây là một ví dụ sử dụng lời hứa được tạo ở trên để ghi kết quả vào bảng điều khiển:
myPromise.then((result) => {
console.log(result);
}).catch((error) => {
console.error(error);
});
Xâu chuỗi lời hứa
Một trong những tính năng mạnh mẽ của lời hứa là khả năng xâu chuỗi chúng lại với nhau. Điều này cho phép chúng tôi thực hiện một loạt các hoạt động không đồng bộ theo trình tự mà không cần gọi lại lồng nhau.
Đây là một ví dụ kết hợp hai lời hứa với nhau:
const getUser = (id) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
const user = { id, name: 'John Doe' };
resolve(user);
}, 1000);
});
};
const getPosts = (user) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
const posts = [{ id: 1, title: 'Post 1' }, { id: 2, title: 'Post 2' }];
resolve({ user, posts });
}, 1000);
});
};
getUser(1)
.then(getPosts)
.then((result) => {
console.log(result);
})
.catch((error) => {
console.error(error);
});
#nodejs #javascript #blockchain #promise #fullstackdeveloper

![Dù sao thì một danh sách được liên kết là gì? [Phần 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































