الفصل 15 — البرمجة غير المتزامنة: Future وasync وawait
الجزء 1A — تعلّم Dart · الفصل 15 من 62 · 6 ساعات
الفصل 15 — البرمجة غير المتزامنة: Future وasync وawait
المستوى: متوسط المدة التقديرية: 6 ساعات المتطلبات المسبقة: الفصل 13 — الاستثناءات ومعالجة الأخطاء، الفصل 14 — البرمجة الوظيفية على المجموعات ما ستكون قادرًا على فعله في نهاية الفصل: كتابة برنامج ينتظر نتيجة طويلة (تحميل، شبكة، ملف) دون أن يعطّل بقية التطبيق أبدًا، مع إتقان
FutureوasyncوawaitوFuture.wait()وStream.
15.0 — أهداف الفصل
في نهاية هذا الفصل ستكون قادرًا على:
- شرح لماذا لا ينبغي لعملية طويلة أن تعطّل البرنامج أبدًا؛
- التمييز بين المعالجة المتزامنة والمعالجة غير المتزامنة؛
- شرح ما هي حلقة الأحداث (event loop) في Dart ولماذا يعمل Dart على خيط تنفيذ واحد (mono-thread)؛
- توقّع الترتيب الفعلي للعرض في برنامج غير متزامن؛
- تعريف
Futureوتسمية حالاته الثلاث؛ - إنشاء
FutureباستخدامFuture.delayed()وFuture.value()وFuture.error()؛ - استخدام
.then()و.catchError()و.whenComplete()؛ - كتابة دالة
asyncواستخدامawait؛ - فهم لماذا تُرجع دالة
asyncدائمًاFuture؛ - التقاط خطأ غير متزامن باستخدام
try/catch/finally؛ - التعرّف على استخدامات
awaitالمتسلسلة دون داعٍ وجعلها متوازية باستخدامFuture.wait()؛ - استخدام
unawaitedمع future غير مُنتظَر عن قصد؛ - كتابة دالة
main()غير متزامنة؛ - شرح الفرق بين
FutureوStream؛ - إنتاج
Streamباستخدامasync*وyield؛ - استهلاك
Streamباستخدامawait forوlisten()؛ - تحويل
Streamباستخدامmapوwhere؛ - شرح لماذا يقوم Flutter بالكامل على البرمجة غير المتزامنة.
التعليقات
التعليقات مدعومة عبر GitHub Discussions
سجّل الدخول باستخدام GitHub للمشاركة في النقاش