Dart Academy · درس

إنشاء Futures وانتظارها

أنشئ قيم Future واستهلكها

الدرس 2 من 413 خطوة

إنشاء Futures وانتظارها درس مجاني في Dart Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Dart Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Dart Academy 4 دروس في المجموع.

وعد بقيمة

يمثل Future قيمة غير جاهزة بعد، لكنها ستصل لاحقًا، مثل إيصال تستبدله عندما يكتمل طلبك.

Future من نوع محدد

يكون future دائمًا محدد النوع وفقًا لما سيقدمه. إذ يعد Future<int> بتقديم int بعد اكتمال العمل غير المتزامن.

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

تمييز Function بـ async

أضف الكلمة المفتاحية async، وستعيد الدالة Future تلقائيًا. وتصبح قيمة إرجاعها قيمة Future عند اكتماله.

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

انتظار نتيجة

داخل دالة async، تعمل await على إيقاف التنفيذ حتى يكتمل future، ثم تمنحك القيمة العادية غير المغلفة.

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

لا تحظر await التنفيذ

بينما تنتظر إحدى الدوال، يواصل event loop تشغيل الأعمال الأخرى. تؤجل await هذه الدالة فقط، لا البرنامج بأكمله.

محاكاة التأخير

استخدم Future.delayed للانتظار مدةً محددة قبل إنتاج قيمة، وهو مثالي لمحاكاة استدعاء شبكة بطيء.

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

Future فوري

تغلف Future.value قيمةً جاهزة داخل future، وهذا مفيد عندما تتوقع واجهة برمجية Future بينما تملك الإجابة بالفعل.

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

إنشاء سلسلة باستخدام then

قبل async/await، كنت تستخدم then لتشغيل callback بعد حل future. ولا يزال مفيدًا للسلاسل القصيرة.

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

قراءة await أوضح

مقارنةً بـ callbacks المتداخلة من نوع then، تتيح await قراءة التعليمات غير المتزامنة من الأعلى إلى الأسفل مثل الخطوات المتزامنة العادية.

الإرجاع من async

كل ما تعيده من دالة async يصبح قيمة future. وإذا لم تُعد شيئًا، فستحصل على Future<void>.

استخدام await داخل async فقط

لا يمكنك استخدام await إلا داخل دالة مميزة بـ async. وخارجها، تعامل مع Future باستخدام then بدلًا من ذلك.

تحقق سريع

تحقق سريع من سلوك await.

مراجعة: Futures

أصبحت الآن تنشئ futures باستخدام async، وتقدم القيم عبر الإرجاع، وتفك تغليفها باستخدام await. وتُقرأ التعليمات غير المتزامنة بوضوح التعليمات المتزامنة نفسه. 🚀

البدء مجانًا

تعلم Dart مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
30
الدروس
120

الأسئلة الشائعة

هل درس «إنشاء Futures وانتظارها» مجاني؟

نعم — نص درس «إنشاء Futures وانتظارها» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Dart Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Dart Academy 4 دروس في المجموع.

ماذا ستتعلم في «إنشاء Futures وانتظارها»؟

أنشئ قيم Future واستهلكها تتمرن على Dart Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Dart Academy؟

لا تُشترط خبرة سابقة. Dart Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «إنشاء Futures وانتظارها»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Dart Academy هذا؟

نعم. كل درس في Dart Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. حلقة الأحداث والمهام الصغيرة
  2. إنشاء Futures وانتظارها
  3. معالجة الأخطاء في الكود غير المتزامن
  4. Future.wait والعمل المتوازي
← العودة إلى Dart Academy