#7012026-04-03
JavaScript Event Loop: Tại Sao Single-Thread Lại Xử Lý Được Async?
JavaScript chỉ có một luồng thực thi nhưng không bao giờ bị chặn - nhờ event loop điều phối giữa call stack, Web APIs, task queue và microtask queue. Promise luôn chạy trước setTimeout vì microtask queue được drain hoàn toàn trước mỗi macrotask tiếp theo. Hiểu sai quy tắc này là nguồn gốc của hàng loạt bug thứ tự thực thi khó chịu trong production. freeCodeCamp vừa publish khóa học miễn phí giải thích toàn bộ cơ chế qua animation bước-từng-bước.