0Pricing
JavaScript Academy · บทเรียน

Promises — สถานะ การเชื่อมต่อ และการจัดการข้อผิดพลาด

สร้างและใช้ Promises: สถานะ (pending/fulfilled/rejected) การเชื่อมต่อด้วย then และการจัดการข้อผิดพลาดด้วย catch/finally

Promises — สถานะ การเชื่อมต่อ และการจัดการข้อผิดพลาด เป็นบทเรียน JavaScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน JavaScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส JavaScript Academy มีบทเรียนทั้งหมด 3 บทเรียน

รู้จักพรอมิส

เป้าหมาย: เรียนรู้รูปแบบการใช้พรอมิสขนาดเล็ก

  • สถานะ: รอดำเนินการ → สำเร็จ/ถูกปฏิเสธ
  • การเชื่อม then
  • การจับข้อผิดพลาด
  • การเก็บกวาดในขั้นตอนสุดท้าย
Promises — สถานะ การเชื่อมต่อ และการจัดการข้อผิดพลาด — ภาพประกอบ 1

ทำให้พรอมิสสำเร็จ

พรอมิสเริ่มต้นในสถานะรอดำเนินการ และจะกลายเป็นสำเร็จเมื่อคุณเรียกใช้ 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);
});
Promises — สถานะ การเชื่อมต่อ และการจัดการข้อผิดพลาด — ภาพประกอบ 2

ปฏิเสธและจับข้อผิดพลาด

ใช้การปฏิเสธ(ข้อผิดพลาด) เมื่อล้มเหลว ส่วนการจับข้อผิดพลาดจะจัดการการปฏิเสธใด ๆ ที่เกิดขึ้นก่อนหน้านั้น

// 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);
  });
Promises — สถานะ การเชื่อมต่อ และการจัดการข้อผิดพลาด — ภาพประกอบ 3

พื้นฐานการเชื่อม 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);
  });
Promises — สถานะ การเชื่อมต่อ และการจัดการข้อผิดพลาด — ภาพประกอบ 4

การเก็บกวาดในขั้นตอนสุดท้าย

การทำงานสุดท้ายใช้สำหรับการเก็บกวาดหลังสำเร็จหรือล้มเหลว โดยจะไม่รับค่าหรือข้อผิดพลาด

// 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");
  });
Promises — สถานะ การเชื่อมต่อ และการจัดการข้อผิดพลาด — ภาพประกอบ 5

ทำความรู้จัก 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);
  });
Promises — สถานะ การเชื่อมต่อ และการจัดการข้อผิดพลาด — ภาพประกอบ 6

แบบทดสอบการจัดการข้อผิดพลาดของพรอมิส

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

Promises — สถานะ การเชื่อมต่อ และการจัดการข้อผิดพลาด — ภาพประกอบ 7

ทบทวน

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

Promises — สถานะ การเชื่อมต่อ และการจัดการข้อผิดพลาด — ภาพประกอบ 8

คำถามที่พบบ่อย

บทเรียน “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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. Event Loop และพื้นฐาน Task กับ Microtask
  2. Promises — สถานะ การเชื่อมต่อ และการจัดการข้อผิดพลาด
  3. Promise.all / any / race / allSettled — เลือกเครื่องมือให้เหมาะสม
← กลับไปที่ JavaScript Academy