تكرار السؤال: …
الإجابة المختصرة
الدالة async ترجع Future، وawait ينتظر اكتمال Future داخل الدالة من غير حجز خيط التنفيذ، مع تمرير النتيجة أو الخطأ بشكل واضح.
الشرح
Future يمثل نتيجة قد تصل لاحقًا. await يوقف استكمال الدالة الحالية حتى تكتمل العملية، لكنه لا يحول العملية إلى synchronous ولا يجمّد event loop. تعامل مع الأخطاء باستخدام try/catch، وتأكد أن كل Future مهم إما awaited أو تتم إدارته صراحة.
مثال بالكود
Future<String> loadName() async {
final response = await fetchName();
return response;
}
try {
final name = await loadName();
} catch (error) {
handle(error);
}أخطاء شائعة
- اعتبار await معناه تشغيل العملية على isolate آخر.
- نسيان await ثم التعامل مع Future كأنه القيمة النهائية.