Chào cả nhà,
Theo em hiểu thì javascript chỉ xử lý tuần tự từng task một, những task là bất đồng bộ sẽ được xếp vào callback queue để event loop chờ stack trống sẽ đưa các stask trong callback queue vào stack để xử lý.
// task 2
setTimeout(()=>{
// console.log("Call API")
},0);
//task 1
for(let i = 0; i < 10000000; i++){
console.log(`render UI ${i}`);
}
Trong đoạn code trên thì js chờ task 1 chạy xong thì task 2 mới bắt đầu chạy, chứ không thể vừa làm task 1 đồng thời vừa làm task 2 đúng không ạ?
Vậy tại sao youtube, facebook có thể xử lý nhiều việc cùng 1 lúc? Ví dụ trường hợp xem live stream trên facebook: giao diện facebook vừa phát video, vừa có thể xử lý file do user up lên (vừa xem live stream vừa upload file nặng gửi trong box chat), đồng thời socket có thể load commnet realtime, hiện notification, …
Em cảm ơn