سؤال

أواجه مشكلة في الالتفاف حول كيفية عمل Dojo المؤجل للسيناريو التالي.في الأساس لدي وظيفة من المفترض أن تمر عبر عدد من العناصر ومعالجة كل عنصر على حدة بطريقة مؤجلة.يقوم بمعالجة كل عنصر بطريقة منفصلة تقوم بإرجاع مؤجل عند الانتهاء.أريد أن أكون قادرًا على تنفيذ الحلقة للانطلاق ومعالجة كل عنصر والإبلاغ عن النجاح أو الفشل عند الانتهاء.هذا ما حصلت عليه حتى الآن كعينة اختبار:

http://jsfiddle.net/Ayyoudy/mgv6Y/12/

ما الخطأ الذي أفعله؟أتوقع أن تكون أرقام المخرجات متسلسلة ولكنها ليست كذلك.

أريد أيضًا أن أكون قادرًا على اكتشاف ما إذا كان هناك خطأ في معالجة أحد العناصر ، وإذا كان الأمر كذلك ، فلا يمكنني معالجة الباقي.

شكرا

هل كانت مفيدة؟

المحلول

  1. لقد قررت أن رقم الإخراج يجب أن يكون في تسلسل. http://jsfiddle.net/granjoy/mgv6Y/17/ هناك مشكلتان في شفرتك

    • يجب أن تستخدم وظيفة التكرار الإغلاق للاحتفاظ بالمتغير.
    • يجب استخدام التحقق من صحة إرجاع مؤجل الآن العملية المؤجلة
  2. نظرًا لأن هذه العملية () ستنتهي على الفور ، لذلك فإن السجل "أتم معالجة كل شيء!"سيكون الناتج الأول.

تعديل:

تعلمت من السؤال.شكرا المؤلف يعطي حلا جيدا آخر. http://jsfiddle.net/Ayyoudy/mgv6Y/14

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top