Async: forEachOf - لم يتم استدعاء رد النداء النهائي

تم إنشاؤها على ٢٩ يونيو ٢٠١٥  ·  1تعليق  ·  مصدر: caolan/async

تحرير: تم حل المشكلة (لقد تحدثت مبكرًا جدًا!) ... (انظر أدناه)

أنا أستخدم طريقة .forEachOf لإلقاء رد نداء بعد التكرار خلال كائن معين. المشكلة الوحيدة هي أن رد النداء النهائي الذي تم تمريره باعتباره الوسيطة الثالثة لـ forEachOf لا يبدو أنه تم إلقاؤه على الإطلاق.

فيما يلي بعض التعليمات البرمجية النموذجية للمشكلة:

var async = require('async');

var anArray = [];

var testObj = {
    'a': '1',
    'b': '2',
    'c': '3'
};

async.forEachOf(testObj, function (elem, key, callback) {
    console.log(elem);

    anArray.push(elem);
}, function (err) {
    if (err) {
        console.error(err.message);
    }

    console.log("This line should be printed at the end.", anArray);
});

ها هو على Runnable: http://code.runnable.com/VZELB92Qa1Y7JQuq/async-foreachof-node-js-not-working-2-for-callback

الآن يمكن أن أفعل شيئًا خاطئًا تمامًا هنا ، لكني قمت بنشر هذا السؤال على / r / node على reddit و Stack Overflow ، ولم أحصل على أي ردود مفيدة. ما الخطأ الذي أفعله هنا؟ هذا يقودني الى الجنون!!!

تحرير: يبدو كما لو أنني نسيت في هذا المثال الأولي إضافة عبارة "return callback ()". في المثال المحدد حيث واجهت هذه المشكلة بالفعل في الكود الخاص بي ، لدي طريقة غير متزامنة ثانية أجعل فيها عبارة "return callback ()". يبدو كما لو أنني سأحتاج إلى استخدام ميزة تدفق تحكم أخرى لاستدعاء رد الاتصال بمجرد انتهاء تشغيل الطريقة غير المتزامنة الثانية. اعتذاري. الرجاء إغلاق هذه المسألة في أسرع وقت ممكن !!!

من ناحية أخرى ، أعتقد أنه سيكون من المفيد للمستخدمين الآخرين في المستقبل باستخدام هذه الطريقة لمعرفة كيفية استخدام عبارة "return callback ()" بشكل صحيح. التوثيق ناقص بالتأكيد في هذا المجال ، وليس هناك الكثير من الأساليب الفردية في هذه المكتبة كما هي ، لذا فإن العثور على المساعدة بطيء للغاية وممل وصعب!

question

التعليق الأكثر فائدة

المتأنق تحتاج إلى استدعاء "callback ()" بعد كل تكرار.

async.forEachOf(testObj, function (elem, key, callback) {
    console.log(elem);
    anArray.push(elem);
callback() //<<<<<<<<<
},...

>كل التعليقات

المتأنق تحتاج إلى استدعاء "callback ()" بعد كل تكرار.

async.forEachOf(testObj, function (elem, key, callback) {
    console.log(elem);
    anArray.push(elem);
callback() //<<<<<<<<<
},...
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات