Promise.all / any / race / allSettled — เลือกเครื่องมือให้เหมาะสม
ฝึกใช้ตัวรวม Promise: all, any, race, allSettled เรียนรู้พฤติกรรมเมื่อสำเร็จหรือล้มเหลว และเวลาที่ควรใช้แต่ละแบบ
Promise.all / any / race / allSettled — เลือกเครื่องมือให้เหมาะสม เป็นบทเรียน JavaScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน JavaScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส JavaScript Academy มีบทเรียนทั้งหมด 3 บทเรียน
ภาพรวมตัวช่วยประสานพรอมิส
เป้าหมาย: เรียนรู้ตัวช่วยสี่แบบและพฤติกรรมของแต่ละแบบ
- all: รอทั้งหมด และล้มเหลวทันที
- any: สำเร็จครั้งแรก
- race: รายการแรกที่เสร็จสิ้น ไม่ว่าจะสำเร็จหรือล้มเหลว
- allSettled: ผลลัพธ์ของทุกรายการ

พื้นฐาน Promise.all
Promise.all จะสำเร็จพร้อมอาร์เรย์ของผลลัพธ์ การปฏิเสธเพียงรายการเดียวจะทำให้ทั้งหมดถูกปฏิเสธ
// Small helpers for examples
function delay(ms, value, shouldFail = false) {
return new Promise(function (resolve, reject) {
setTimeout(function () {
if (shouldFail) reject(new Error(String(value)));
else resolve(value);
}, ms);
});
}
// Promise.all waits for all; rejects fast on first error
Promise.all([
delay(10, "A"),
delay(5, "B")
]).then(function (vals) {
console.log("all:", vals);
});

พื้นฐาน Promise.any
Promise.any จะสำเร็จด้วยผลสำเร็จแรก และจะถูกปฏิเสธก็ต่อเมื่อข้อมูลเข้าทั้งหมดถูกปฏิเสธ
// Promise.any gives the first fulfilled value
Promise.any([
delay(8, "ok-1"),
delay(3, "ok-2"),
delay(6, "ok-3")
]).then(function (v) {
console.log("any:", v);
}).catch(function (e) {
console.log("any failed:", e.message);
});

พื้นฐาน Promise.race
Promise.race จะเลือกสิ่งที่เสร็จสิ้นก่อน ซึ่งอาจเป็นการสำเร็จหรือการปฏิเสธก็ได้
// Promise.race settles with the first to finish (success or error)
Promise.race([
delay(5, "win"),
delay(7, "boom", true)
]).then(function (v) {
console.log("race resolved:", v);
}).catch(function (e) {
console.log("race rejected:", e.message);
});

พื้นฐาน Promise.allSettled
Promise.allSettled จะสำเร็จเสมอพร้อมอาร์เรย์ของวัตถุสถานะสำหรับข้อมูลเข้าทุกรายการ
// Promise.allSettled waits for all and reports each outcome
Promise.allSettled([
delay(4, "A"),
delay(6, "X", true)
]).then(function (results) {
console.log("allSettled:", results.map(function (r) { return r.status; }));
});

ควรใช้แบบใด
การเลือกใช้:
- all: ต้องการผลลัพธ์ทั้งหมด และต้องการให้ล้มเหลวทันทีเมื่อเกิดข้อผิดพลาดใด ๆ
- any: ยอมรับผลสำเร็จแรก เช่น แหล่งข้อมูลทดแทน
- race: เลือกสิ่งที่เสร็จสิ้นก่อน เช่น รูปแบบการกำหนดเวลาหมด
- allSettled: รวบรวมผลลัพธ์ทุกกรณีเพื่อตรวจสอบ

แบบทดสอบการเลือกตัวช่วยประสานพรอมิส
ตรวจสอบอย่างรวดเร็ว: ผลลัพธ์ที่สำเร็จเป็นรายการแรก

ทบทวน
ทบทวน: ใช้ all เมื่อ “ต้องการทั้งหมด” ใช้ any เมื่อ “ต้องการผลสำเร็จแรก” ใช้ race เมื่อ “ต้องการรายการแรกที่เสร็จสิ้น” และใช้ allSettled เพื่อตรวจสอบผลลัพธ์ทุกกรณีโดยไม่หยุดการทำงานก่อน

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