Tôi đang đọc bài viết này:Vòng lặp sự kiện Javascript. Làm rõ cần
http://blog.carbonfive.com/2013/10/27/the-javascript-event-loop-explained/
Có câu nói này:
"các chủ đề duy nhất thực hiện yêu cầu thời gian chạy để thực hiện một hoạt động , cung cấp một chức năng gọi lại và sau đó di chuyển Khi hoạt động đã được hoàn thành, một thông báo là được cung cấp cùng với chức năng gọi lại được cung cấp tại một số thời điểm trong tương lai, thông báo sẽ được giải quyết và cuộc gọi lại bị sa thải. "
Vì vậy, một ví dụ về những gì đang xảy ra ở đây trong tâm trí của tôi là thế này:
console.log("x")
someAjaxCall(function({
callbackcode
})
console.log("y")
Câu hỏi:
1) someAjaxCall là hoạt động đúng và callbackcode là gọi lại?
2) Vì vậy, về cơ bản khi một sốAjaxCall được gọi, một thông điệp được enqueued trỏ đến callbackfunction chính xác? Sau khi console.log ("y") được gọi hoặc khi ngăn xếp được làm rỗng, thông báo sẽ bị hoãn lại và cuộc gọi lại/mã gọi lại được kích hoạt?
Sau đó có trích dẫn này:
"The tách của người gọi từ phản ứng cho phép runtime hoạt Javascript để làm những việc khác trong khi chờ đợi hoạt động không đồng bộ của bạn để hoàn thành và callbacks của mình để bắn."
3) Thời gian chạy là gì? Điều đó nghĩa là gì? Tôi chỉ nhận nó để có nghĩa là callstack có thể tiếp tục thực hiện và khi nó trống ... các thông điệp sau đó có thể dequeue?
Câu trả lời cho câu hỏi này [JavaScript xử lý phản hồi AJAX trong nền như thế nào?] (Http://stackoverflow.com/questions/7575589/how-does-javascript-handle-ajax-responses-in-the-background/7575649 # 7575649) có thể trả lời hầu hết những gì bạn đang hỏi. Câu hỏi này có lẽ thậm chí là một sự lừa dối của cái đó. – jfriend00