0%
البرمجة غير المتزامنة: Future وasync وawait — الفصل 15

الفصل 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 للمشاركة في النقاش

تم نسخ الرابط!