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

สร้างและรอค่า Future

สร้างและใช้ค่า Future

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

คำสัญญาว่าจะได้ค่า

Future แทนค่าที่ตอนนี้ยังไม่พร้อม แต่จะมาถึงในภายหลัง เปรียบได้กับใบเสร็จที่คุณนำไปแลกรับเมื่อคำสั่งซื้อเสร็จสิ้น

Future ของชนิดข้อมูล

Future จะมีชนิดข้อมูลตามค่าที่จะส่งมอบเสมอ Future<int> รับรองว่าจะส่งค่า int ให้เมื่อการทำงานแบบ async เสร็จสิ้น

Future<int> fetchScore() async {
  return 42;
}

กำหนดให้ฟังก์ชันเป็น async

เพิ่มคีย์เวิร์ด async แล้วฟังก์ชันจะคืนค่าเป็น Future โดยอัตโนมัติ ค่าที่คืนมาจะกลายเป็นค่าที่ Future ส่งมอบเมื่อทำงานเสร็จ

Future<String> greet() async {
  return "hi";
}

รอผลลัพธ์

ภายในฟังก์ชันแบบ async คำสั่ง await จะหยุดรอจนกว่า Future จะเสร็จสิ้น จากนั้นจึงส่งค่าจริงที่แกะออกมาแล้วให้คุณ

final score = await fetchScore();
print(score); // 42

await ไม่ได้บล็อกการทำงาน

ขณะที่ฟังก์ชันหนึ่งกำลัง await ลูปเหตุการณ์ยังคงเรียกใช้งานอื่นต่อไป await ระงับเฉพาะฟังก์ชันนี้ ไม่ใช่ทั้งโปรแกรม

จำลองการหน่วงเวลา

ใช้ Future.delayed เพื่อรอเป็นระยะเวลาที่กำหนดก่อนสร้างค่า เหมาะสำหรับจำลองการเรียกเครือข่ายที่ทำงานช้า

await Future.delayed(Duration(seconds: 1));
print("one second later");

Future ที่เสร็จทันที

Future.value ห่อค่าที่พร้อมใช้งานไว้ใน Future มีประโยชน์เมื่อ API ต้องการ Future แต่คุณมีคำตอบอยู่แล้ว

Future<int> ready = Future.value(7);

เชื่อมงานด้วย then

ก่อนที่จะมี async/await คุณใช้ then เพื่อเรียกใช้ callback เมื่อ Future แก้ไขเสร็จแล้ว วิธีนี้ยังเหมาะสำหรับสายงานสั้น ๆ

fetchScore().then((s) => print(s));

await อ่านง่ายกว่า

เมื่อเทียบกับ callback then ที่ซ้อนกันหลายชั้น await ช่วยให้โค้ดแบบ async อ่านจากบนลงล่างได้เหมือนขั้นตอนทั่วไปที่ทำงานแบบ sync

การคืนค่าจาก async

ค่าที่คุณคืนจากฟังก์ชันแบบ async จะกลายเป็นค่าของ Future หากไม่คืนค่าใด ๆ คุณจะได้รับ Future<void>

ใช้ await ได้เฉพาะใน async

คุณใช้ await ได้เฉพาะภายในฟังก์ชันที่กำหนดให้เป็น async เท่านั้น หากอยู่นอกฟังก์ชันดังกล่าว ให้ทำงานกับ Future ผ่าน then แทน

ตรวจสอบความเข้าใจ

ตรวจสอบความเข้าใจอย่างรวดเร็วเกี่ยวกับการทำงานของ await

ทบทวน: Futures

ตอนนี้คุณสามารถสร้าง Future ด้วย async ส่งมอบค่าด้วยการคืนค่า และแกะค่าออกมาด้วย await ได้แล้ว โค้ดแบบ async อ่านได้สะอาดเหมือนโค้ดแบบ sync 🚀

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

บทเรียน “สร้างและรอค่า Future” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “สร้างและรอค่า Future” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Dart Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “สร้างและรอค่า Future”

สร้างและใช้ค่า Future คุณปฏิบัติ Dart Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Dart Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Dart Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “สร้างและรอค่า Future” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Dart Academy นี้ได้ไหม

ได้ บทเรียน Dart Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. ลูปเหตุการณ์และไมโครทาสก์
  2. สร้างและรอค่า Future
  3. การจัดการข้อผิดพลาดในโค้ดอะซิงโครนัส
  4. Future.wait และงานแบบขนาน
← กลับไปที่ Dart Academy