Tại sao cần lập trình async

JavaScript là ngôn ngữ đơn luồng và các hoạt động tốn thời gian như yêu cầu mạng, đọc và ghi tệp phải được thực hiện không đồng bộ, nếu không giao diện sẽ bị kẹt.

Lời bài hát: Callback Hell

Mã callback lồng nhau nhiều lớp rất khó duy trì.

Promise 3 trạng thái

  • pending: Đang tiến hành
  • fulfilled: Thành công
  • rejected: Thất bại
fetch('/api/user').then(res => res.json()).then(data => console.log(data)).catch(err => console.error(err));

Ngữ pháp async/await

ES2017 được giới thiệu để làm cho mã không đồng bộ trông giống như đồng bộ:

async function loadUser() {

Thực hiện song song

Nhiều yêu cầu độc lập song song với Promise.all.

Bẫy thường

  • Quên await dẫn đến đối tượng Promise thay vì kết quả
  • Lỗi sử dụng await trong vòng lặp dẫn đến thực thi nối tiếp
  • Lỗi try/catch gây ra ngoại lệ không bị bắt

Tuyên bố miễn trừ trách nhiệm: Các bài viết trên trang này đến từ nội dung gốc, đăng lại, tạo bởi AI và các nguồn khác. Nếu có vấn đề về bản quyền hoặc vấn đề khác, vui lònggửi phản hồi, công ty chúng tôi sẽ kiểm tra và xử lý kịp thời.