مفهوم Completion Handler در سوئیفت

زمان مطالعه : ۲ دقیقه
آخرین بروزرسانی : ۱۷ آذر ۱۴۰۳
آموزش completion handler در سوئیفت

در جلسات قبل در مورد تابع ها و کلژر ها صحبت کردیم و به طور کامل با آن ها آشنا شدیم.

حالا در ادامه جلسات قبل میخواهیم با completion handler در swift آشنا شویم.

Completion Handler چیست؟

completion handler همان closure ای هست که به عنوان پارامتر ورودی یک تابع قرار گرفته و بعد از اتمام وظیفه‌ی اصلی تابع، فراخوانی می‌شود.

بگذارید با یک مثال برایتان این مفهوم را جا بندازم

تصور کنید که قصد دارد از اینترنت فایلی را دانلود کنید (یا کلا یک درخواست به شبکه دارید) طبیعتا این درخواست کمی زمان بر است. و شما نیاز دارید که وقتی درخواست تکمیل شد و جواب را بصورت کامل گرفتید آنگاه در ادامه یک مجموعه کد جدید اجرا شود.

در واقع این مثالی که زدم یک مثال بارز از نیاز ما به completion handler است. به مثال زیر که با کد سوئیفت هست نگاه کنید:

func funcWithCompletionHandler(completion: () -> Void) {
 // کدهایی که باید ابتدا انجام شوند
 print("Task Started")

 // فراخوانی Completion Handler و اجرای دستورات بعدی
 completion()
}

که در مثال بالا اول دستورات تابع سوئیفتی اجرا میشود و بعد سراغ دستورات مربوط به Completion Handler میرود

حال برویم سراغ یک مثال دیگر که همراه با ورودی است

func fetchData(completion: (String) -> Void) {
 print("Fetching data from internet...")

 sleep(2)
 let fetchedData = "Sample Data"
 print("Data fetched successfully!")

 // ارسال داده به Completion Handler
 completion(fetchedData)
}

// فراخوانی تابع
fetchData { data in
 print("Received data: \(data)")
}

که خروجی کد بالا بصورت زیر است:

Fetching data from internet...
Data fetched successfully!
Received data: Sample Data

توضیحات بیشتر:

بعد از متن Fetching data from internet... برنامه دو ثانیه منتظر میماند و بعد دستور پرینت بعدی و بعد کلژر (یا همان completion handler) اجرا میشود.

نتیجه گیری

Completion Handler یکی از ابزار های کلیدی برای مدیریت عملیات‌ های ناهمزمان است که در بسیاری از پروژه‌های واقعی کاربرد دارد.


این مقاله در حال بروز رسانی است و در آینده نزدیک مباحث جدید تری اضافه میشود...
میلاد خط شب
میلاد خط شب
معتقدم هر آدمی میتواند در یک زمینه ای مفید و تاثیر گذار باشد و اصولا آدم "غیر مفید" نداریم. فقط کافی است به موقع و صحیح راهنمایی شود.
پاسخ دهید


به این مقاله علاقه داشتید؟ 🥰

6