Event Loop และพื้นฐาน Task กับ Microtask
ดูว่า event loop ทำงานโค้ดแบบ同步ก่อน จากนั้น microtask แล้วจึง task ฝึกใช้ setTimeout, Promise.then และ queueMicrotask
Event Loop และพื้นฐาน Task กับ Microtask เป็นบทเรียน JavaScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน JavaScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส JavaScript Academy มีบทเรียนทั้งหมด 3 บทเรียน
รู้จักลูปเหตุการณ์
เป้าหมาย: เรียนรู้ลำดับพื้นฐาน: โค้ดแบบทำงานทันที → งานจุลภาค (พรอมิส/queueMicrotask) → งาน (setTimeout)
- ทำงานทันทีเป็นอันดับแรก
- งานจุลภาคเป็นลำดับถัดไป
- งานเป็นลำดับสุดท้าย

ทำงานทันทีเป็นอันดับแรก
คำสั่งแบบทำงานพร้อมกันจะทำงานจากบนลงล่างก่อนฟังก์ชันเรียกกลับที่อยู่ในคิวทั้งหมด
// Sync code runs immediately
console.log("A: sync start");
console.log("B: sync middle");
console.log("C: sync end");

พื้นฐานคิวงาน
setTimeout จะใส่งานไว้ในคิว โดยงานจะทำงานหลังจากรอบการทำงานปัจจุบันเสร็จสิ้น
// Tasks (macrotasks) via setTimeout
console.log("1: start");
setTimeout(function () {
console.log("3: timeout task");
}, 0);
console.log("2: after scheduling");

พื้นฐานงานจุลภาค
Promise.then จะเพิ่มงานจุลภาค งานจุลภาคจะทำงานทันทีหลังโค้ดแบบทำงานทันที และก่อนงานทั่วไป
// Microtasks via Promise.then
console.log("X: sync");
Promise.resolve().then(function () {
console.log("Y: microtask");
});
console.log("Z: after scheduling microtask");

ตัวอย่างลำดับการทำงาน
ลำดับที่คาดไว้: เริ่มต้น → สิ้นสุด → งานจุลภาค → งาน
// Order demo: microtask runs before task
console.log("Start");
setTimeout(function () {
console.log("Task: timeout");
}, 0);
Promise.resolve().then(function () {
console.log("Microtask: promise");
});
console.log("End");

ตัวอย่าง queueMicrotask
queueMicrotask ก็จัดตารางงานจุลภาคเช่นกัน ควรทำให้ฟังก์ชันเรียกกลับมีขนาดเล็กเพื่อให้แอปทำงานลื่นไหล
// queueMicrotask is another way to schedule a microtask
console.log("S");
queueMicrotask(function () {
console.log("M: microtask");
});
console.log("E");
// Tip: do not overuse microtasks; keep callbacks tiny

แบบทดสอบงานจุลภาคกับงาน
ตรวจสอบอย่างรวดเร็ว: กฎการเรียงลำดับ

ทบทวน
ทบทวน: ลูปจะทำงานกับโค้ดแบบทำงานทันทีก่อน จากนั้นทำงานในคิวงานจุลภาคจนหมด แล้วจึงทำงานงาน ใช้ setTimeout สำหรับงาน และใช้ Promise.then/queueMicrotask สำหรับงานจุลภาค

คำถามที่พบบ่อย
บทเรียน “Event Loop และพื้นฐาน Task กับ Microtask” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “Event Loop และพื้นฐาน Task กับ Microtask” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส JavaScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส JavaScript Academy มีบทเรียนทั้งหมด 3 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “Event Loop และพื้นฐาน Task กับ Microtask”
ดูว่า event loop ทำงานโค้ดแบบ同步ก่อน จากนั้น microtask แล้วจึง task ฝึกใช้ setTimeout, Promise.then และ queueMicrotask คุณปฏิบัติ JavaScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน JavaScript Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน JavaScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน
บทเรียน “Event Loop และพื้นฐาน Task กับ Microtask” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน JavaScript Academy นี้ได้ไหม
ได้ บทเรียน JavaScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- Event Loop และพื้นฐาน Task กับ Microtask
- Promises — สถานะ การเชื่อมต่อ และการจัดการข้อผิดพลาด
- Promise.all / any / race / allSettled — เลือกเครื่องมือให้เหมาะสม