0Pricing
Kotlin Multiplatform Academy · บทเรียน

ฟังก์ชัน Suspend ในรูปแบบ async ของ Swift

ใช้โครูทีน Kotlin จากการทำงานพร้อมกันของ Swift

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

Suspend พบกับ async

ฟังก์ชัน suspend ของ Kotlin จะถูกเปิดเผยใน Swift เป็นเมธอด async ทำให้ iOS ใช้ await ด้วยการทำงานพร้อมกันแบบ native ของ Swift ได้

suspend fun loadUser(): User

ไม่ต้องใช้ Callback

สะพานเชื่อมรุ่นเก่าเคยบังคับให้ใช้ตัวจัดการเมื่อเสร็จสิ้น แต่ KMP รุ่นใหม่จะแปลง suspend เป็น async โดยตรง โค้ด Swift จึงสะอาดและทำงานเป็นลำดับ

ใช้ Await ใน Swift

จาก Swift คุณเพียงใช้ await เรียกใช้ภายในบริบท async coroutine จะทำงานและกลับมาทำงานต่อใน Swift เมื่อเสร็จสิ้น

let user = try await repo.loadUser()

ข้อผิดพลาดกลายเป็น throws

หากฟังก์ชัน suspend อาจล้มเหลว Swift จะมองเห็นเป็นเมธอด async แบบโยนข้อผิดพลาด คุณจึงครอบ await ด้วย try และ catch ข้อผิดพลาด

do { try await repo.loadUser() }
catch { print(error) }

การยกเลิกส่งต่อถึงกัน

เมื่อ Swift ยกเลิก Task ของตน การยกเลิกนั้นจะส่งต่อเข้าไปยัง coroutine ของ Kotlin และหยุดงานที่ใช้ร่วมกันอย่างเรียบร้อย

เรียกใช้ใน Task

เรียกใช้ฟังก์ชัน async ที่ใช้ร่วมกันภายใน Task ของ Swift เมื่อคุณไม่ได้อยู่ในบริบท async อยู่แล้ว เช่น เมื่อแตะปุ่ม

Task {
    let u = try await repo.loadUser()
}

เลือก Dispatcher ให้เหมาะสม

coroutine จะทำงานบนตัวจัดการการกระจายงานที่คุณตั้งไว้ในโค้ดที่ใช้ร่วมกัน ดังนั้นงานหนักจะไม่ทำงานบนเธรดหลักของ iOS ตามค่าเริ่มต้น

การส่งคืนค่า

ค่าที่ฟังก์ชัน suspend ส่งคืนจะกลายเป็นผลลัพธ์ของ await ใน Swift โดยถูกจับคู่ผ่านกฎ Kotlin-to-Obj-C ตามปกติ

Unit หมายถึง Void

ฟังก์ชัน suspend ที่ส่งคืน Unit จะปรากฏใน Swift เป็นเมธอด async ที่ไม่ส่งคืนอะไร เช่นเดียวกับ void

สร้างโดย SKIE

KMP พื้นฐานรองรับ async ในระดับเบื้องต้น แต่เครื่องมืออย่าง SKIE สามารถสร้างลายเซ็น Swift ที่ราบรื่นยิ่งขึ้นสำหรับการเรียกใช้ suspend เหล่านี้

เป็นลำดับและอ่านง่าย

ข้อดีสำคัญคืออ่านง่าย: ตรรกะ async ที่ใช้ร่วมกันจะอ่านจากบนลงล่างใน Swift โดยไม่มี callback ซ้อนกันหรือโครงสร้าง callback ที่ยุ่งเหยิง

ตรวจสอบอย่างรวดเร็ว

มาดูกันว่าฟังก์ชัน suspend ให้ความรู้สึกอย่างไรเมื่อเรียกใช้จาก Swift

ทบทวน

Kotlin suspend จะกลายเป็น async ของ Swift: ใช้ await ภายใน Task จัดการข้อผิดพลาดที่ถูกโยน และการยกเลิกจะส่งต่อได้ทั้งสองทาง การทำงานพร้อมกันที่สะอาดและเป็นระเบียบ ✅

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

บทเรียน “ฟังก์ชัน Suspend ในรูปแบบ async ของ Swift” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “ฟังก์ชัน Suspend ในรูปแบบ async ของ Swift”

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

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

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

บทเรียน “ฟังก์ชัน Suspend ในรูปแบบ async ของ Swift” ใช้เวลานานแค่ไหน

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

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

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

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

  1. วิธีที่ Kotlin แมปกับ Objective-C
  2. ฟังก์ชัน Suspend ในรูปแบบ async ของ Swift
  3. รวบรวม Flow จาก Swift
  4. @ObjCName และ API ที่เป็นมิตรกับ Swift
← กลับไปที่ Kotlin Multiplatform Academy