Promises — สถานะ การเชื่อมต่อ และการจัดการข้อผิดพลาด
สร้างและใช้ Promises: สถานะ (pending/fulfilled/rejected) การเชื่อมต่อด้วย then และการจัดการข้อผิดพลาดด้วย catch/finally
Promises — สถานะ การเชื่อมต่อ และการจัดการข้อผิดพลาด เป็นบทเรียน JavaScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน JavaScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส JavaScript Academy มีบทเรียนทั้งหมด 3 บทเรียน
รู้จักพรอมิส
เป้าหมาย: เรียนรู้รูปแบบการใช้พรอมิสขนาดเล็ก
- สถานะ: รอดำเนินการ → สำเร็จ/ถูกปฏิเสธ
- การเชื่อม then
- การจับข้อผิดพลาด
- การเก็บกวาดในขั้นตอนสุดท้าย

ทำให้พรอมิสสำเร็จ
พรอมิสเริ่มต้นในสถานะรอดำเนินการ และจะกลายเป็นสำเร็จเมื่อคุณเรียกใช้ resolve
// Create a Promise and resolve it
function waitMs(ms) {
return new Promise(function (resolve) {
setTimeout(function () {
resolve("done");
}, ms);
});
}
console.log("Start");
waitMs(10).then(function (msg) {
console.log("Resolved:", msg);
});

ปฏิเสธและจับข้อผิดพลาด
ใช้การปฏิเสธ(ข้อผิดพลาด) เมื่อล้มเหลว ส่วนการจับข้อผิดพลาดจะจัดการการปฏิเสธใด ๆ ที่เกิดขึ้นก่อนหน้านั้น
// Reject to signal an error; handle with catch
function maybeFail(ok) {
return new Promise(function (resolve, reject) {
if (ok) {
resolve("ok");
} else {
reject(new Error("bad"));
}
});
}
maybeFail(true)
.then(function (v) {
console.log("A:", v);
return maybeFail(false);
})
.catch(function (e) {
console.log("Caught:", e.message);
});

พื้นฐานการเชื่อม then
แต่ละ then สามารถคืนค่า หรือคืนพรอมิสได้ ขั้นตอนถัดไปจะได้รับค่านั้น
// Chain then steps; return values flow to the next then
Promise.resolve(2)
.then(function (n) {
return n * 3;
})
.then(function (n) {
console.log("Result:", n);
});

การเก็บกวาดในขั้นตอนสุดท้าย
การทำงานสุดท้ายใช้สำหรับการเก็บกวาดหลังสำเร็จหรือล้มเหลว โดยจะไม่รับค่าหรือข้อผิดพลาด
// finally runs whether fulfilled or rejected
function task(ok) {
return new Promise(function (resolve, reject) {
ok ? resolve("yay") : reject(new Error("oops"));
});
}
task(false)
.catch(function (e) {
console.log("Handled:", e.message);
})
.finally(function () {
console.log("Cleanup done");
});

ทำความรู้จัก Promise.all
Promise.all จะสำเร็จพร้อมอาร์เรย์ของผลลัพธ์ หรือถูกปฏิเสธหากมีรายการใดรายการหนึ่งล้มเหลว
// Promise.all waits for all; rejects fast if any fail
const a = waitMs(5);
const b = Promise.resolve("B");
Promise.all([a, b])
.then(function (values) {
console.log("All:", values);
})
.catch(function (e) {
console.log("All failed:", e.message);
});

แบบทดสอบการจัดการข้อผิดพลาดของพรอมิส
ตรวจสอบอย่างรวดเร็ว: ควรจัดการข้อผิดพลาดที่ใด

ทบทวน
ทบทวน: ใช้ resolve เมื่อสำเร็จ ใช้การปฏิเสธเมื่อเกิดข้อผิดพลาด เชื่อมขั้นตอนด้วย then จัดการปัญหาด้วยการจับข้อผิดพลาด และใช้การทำงานสุดท้ายเพื่อเก็บกวาด

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