𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗣𝗿𝗼𝗺𝗶𝘀𝗲𝘀
Một Promise đại diện cho kết quả của một tác vụ bất đồng bộ.
Bạn sử dụng Promise cho các lệnh gọi API, truy vấn cơ sở dữ liệu và đọc tệp.
Một Promise có ba trạng thái:
- Pending: Tác vụ vẫn đang chạy.
- Fulfilled: Tác vụ đã hoàn thành thành công.
- Rejected: Tác vụ thất bại kèm theo một lỗi.
Cấu trúc trông như thế này:
const promise = new Promise((resolve, reject) => { // The executor runs immediately });
Bạn xử lý các kết quả bằng các phương thức sau:
- .then(): Chạy khi promise thành công.
- .catch(): Chạy khi promise thất bại.
- .finally(): Chạy khi tác vụ kết thúc bất kể kết quả ra sao.
Các quy tắc quan trọng cần ghi nhớ:
- Kết quả đầu tiên sẽ thắng. Nếu bạn gọi resolve() rồi sau đó gọi reject(), resolve sẽ thắng.
- Hàm executor chạy đồng bộ.
- Sử dụng async và await giúp mã của bạn dễ đọc hơn so với việc sử dụng .then().
Xử lý nhiều promise:
- Promise.all(): Phương thức này tuân theo cách tiếp cận fail-fast. Nếu một promise thất bại, toàn bộ nhóm sẽ thất bại.
- Promise.allSettled(): Phương thức này chờ cho mọi promise hoàn thành. Nó trả về kết quả ngay cả khi một số tác vụ thất bại.
Tóm tắt:
- Promise: Một trình xử lý kết quả bất đồng bộ.
- resolve: Đánh dấu sự thành công.
- reject: Đánh dấu sự thất bại.
- async/await: Một cách viết promise sạch sẽ hơn.
- Promise.all: Dừng lại ở lỗi đầu tiên.
- Promise.allSettled: Hoàn thành tất cả các tác vụ.
