Mohammed Hhhh نشر 23 أبريل 2023 أرسل تقرير نشر 23 أبريل 2023 (معدل) flutter : هل ال await تقوم بإيقاف البرنامج بالكامل يعني هل لما اكتب await رح يوقف البرنامج بالكامل حتى يتم تنفيذ الامر ولا انه لا يتوقف البرنامج ويكمل عادي و خلال عمله يتم تنفيذ ال await وشكرا و اعتذر عن عدم و ضوح السؤال و العنوان تم التعديل في 24 أبريل 2023 بواسطة Mustafa Suleiman تعديل عنوان السؤال 1 اقتباس
1 أحمد رضا5 نشر 23 أبريل 2023 أرسل تقرير نشر 23 أبريل 2023 عند استخدام الكلمة المفتاحية "await" في Flutter، فإنها لا تقوم بإيقاف البرنامج بالكامل، ولكنها توقف تنفيذ الدالة الحالية المستدعاة حتى يتم استرداد القيمة المتوقعة من العملية الغير متزامنة التي تم استدعاؤها. ويستمر تنفيذ البرنامج في الخلفية خلال فترة الانتظار. ويستخدم "await" في Flutter بشكل رئيسي مع عمليات الشبكة والعمليات الثقيلة الأخرى التي لا يمكن تنفيذها بشكل فوري. عندما يتم استدعاء دالة "await"، يتم تنفيذ العملية الغير متزامنة بشكل مستقل في الخلفية، في حين يتم إيقاف تنفيذ الدالة الحالية حتى يتم استرداد القيمة المتوقعة. بشكل عام، يمكن القول إن استخدام "await" في Flutter يساعد على تنظيم تنفيذ البرنامج وتفادي حدوث المشاكل والأخطاء التي قد تنجم عن تنفيذ العمليات الثقيلة بشكل متزامن. شرح بسيط لأستخدام Await : في Flutter، يتم استخدام الكلمة المفتاحية "await" مع العمليات الغير متزامنة أو العمليات الثقيلة التي لا يمكن تنفيذها بشكل فوري. يتم استخدام "await" في هذه الحالات لتحسين أداء التطبيق وتجنب حدوث مشاكل في التنفيذ. في الأساس، يتم استخدام "await" مع دوال تعيد Future في Flutter، وتسمى هذه الدوال بـ "Future Functions". Future هو نوع البيانات الذي يتم استخدامه لإرجاع القيم المستردة من العمليات الغير متزامنة. عند استخدام "await" مع Future Function، يتم إيقاف تنفيذ الدالة الحالية حتى يتم الانتهاء من العملية الغير متزامنة، ويتم استرداد القيمة المتوقعة. فيما يلي مثال على كيفية استخدام "await" في Flutter: Future<String> fetchData() async { await Future.delayed(Duration(seconds: 2)); // عملية غير متزامنة تأخذ 2 ثانية للإنتهاء return "تم الحصول على البيانات"; } void main() async { print("بدء العملية"); String data = await fetchData(); print(data); print("انتهاء العملية"); } في هذا المثال، يتم استخدام "await" مع دالة fetchData() التي تعيد Future<String>. تأخذ هذه الدالة عملية غير متزامنة باستخدام Future.delayed()، والتي تستغرق 2 ثانية للإنتهاء. عندما يتم استدعاء الدالة main()، يتم طباعة "بدء العملية"، ثم يتم استدعاء fetchData() باستخدام "await" ويتم إيقاف تنفيذ الدالة الحالية حتى يتم الانتهاء من العملية الغير متزامنة، ويتم استرداد القيمة المتوقعة. بعد ذلك، يتم طباعة القيمة المستردة و "انتهاء العملية". باستخدام "await" في Flutter، يمكن تحسين أداء التطبيق وتجنب حدوث مشاكل في التنفيذ. بالتوفيق. اقتباس
0 Mustafa Suleiman نشر 23 أبريل 2023 أرسل تقرير نشر 23 أبريل 2023 Await في Flutter هي كلمة مفتاحية تستخدم مع العمليات الغير متزامنة أو العمليات الثقيلة التي لا يمكن تنفيذها بشكل فوري. ويتم استخدام Await في Flutter لتحسين أداء التطبيق وتجنب حدوث مشاكل في التنفيذ، حيث تستخدمات Await مع دوال تعيد Future في Flutter، وتسمى هذه الدوال بـ "Future Functions". وعند استخدام Await مع Future Function، يتم إيقاف تنفيذ الدالة الحالية حتى يتم الانتهاء من العملية الغير متزامنة، واسترداد القيمة المتوقعة، ولذلك، فاستخدام Await في Flutter يساعد على تنظيم تنفيذ البرنامج وتفادي حدوث المشاكل والأخطاء التي قد تنجم عن تنفيذ العمليات الثقيلة بشكل متزامن. مثلاً، إذا كان لدينا دالة fetchData() التي تقوم بجلب بيانات من API وتعيد Future، يمكننا استخدام await لجلب البيانات وإظهارها في واجهة المستخدم كما يلي: Future<void> fetchData() async { // جلب البيانات من API final response = await http.get(Uri.parse('https://example.com/api/data')); // تحويل بيانات الاستجابة إلى قائمة من العناصر final data = jsonDecode(response.body) as List<dynamic>; // إظهار البيانات في واجهة المستخدم setState(() { _data = data; }); } وتستطيع استخدام await مع أي دالة تعيد Future في Flutter، مثل دوال تعيد Future من نوع SharedPreferences و AnimationController. مثال آخر: إذا كان لدينا طريقة لاستدعاء ملف JSON من الإنترنت باستخدام حزمة http في Flutter ، فتستطيع استخدام await لإيقاف تنفيذ الكود حتى يتم جلب الملف: import 'package:http/http.dart' as http; Future<String> fetchJson() async { final response = await http.get(Uri.parse('https://example.com/data.json')); if (response.statusCode == 200) { return response.body; } else { throw Exception('Failed to load data'); } } تعود الدالة fetchJson بـ Future<String> ، وتستخدم http.get() لجلب بيانات JSON من URL. بعد ذلك ، نستخدم await لإيقاف تنفيذ الكود حتى يتم جلب الملف. إذا كانت الاستجابة من الملقم بنجاح (مثلاً ،رمز الاستجابة 200) ، فستعود الدالة بـ response.body (الجسم الخاص بالاستجابة) كنص String ، وإلا سيتم تنفيذ Exception. اقتباس
السؤال
Mohammed Hhhh
flutter : هل ال await تقوم بإيقاف البرنامج بالكامل
يعني هل لما اكتب await رح يوقف البرنامج بالكامل حتى يتم تنفيذ الامر ولا انه لا يتوقف البرنامج ويكمل عادي و خلال عمله يتم تنفيذ ال await
وشكرا
و اعتذر عن عدم و ضوح السؤال و العنوان
تعديل عنوان السؤال
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.