Async: ما هو النمط الجيد لانتظار كل التكرارات لـ async.eachLimit حتى تنتهي قبل الانتقال؟

تم إنشاؤها على ١٧ أبريل ٢٠١٩  ·  4تعليقات  ·  مصدر: caolan/async

السؤال: جديد قليلاً على غير متزامن ولديك الكود التالي لتنزيل الكثير من الملفات ، 2 في نفس الوقت تقريبًا

async.eachLimit(files, 2, async (file, callback) => {
     reportStep("downloading");
     console.log("async start: " + file.path);
     await addFile(file.path, file.size);
     console.log("async end: " + file.path);    
     callback();
 }) 
reportStep("completed")

بالطبع ، يتم فصل "مكتمل" بسرعة بينما يواصل async.eachLimit تنفيذ funcs.

ما هي الطريقة الجيدة لانتظار كل التكرارات؟

question

ال 4 كومينتر

nvm ، لم يقرأ المستندات قريبًا بدرجة كافية.

هناك معلمة رد اتصال أخرى ، انتهى بها الأمر إلى اختتامها كلها في وعد يمكنني انتظاره

function download(files) {
    return new Promise((resolve, reject) => {
async.eachLimit(files, 2, async (file, callback) => {
     reportStep("downloading");
     console.log("async start: " + file.path);
     await addFile(file.path, file.size);
     console.log("async end: " + file.path);    
     callback();
         }, (error) => {
            if (error){
                reject(error);
            } else {
                resolve();
            }
        })
    });
}

await download(files)

ملاحظة جانبية ، إذا كنت تستخدم الإصدار التجريبي لـ v3 ، فلن تحتاج إلى الغلاف. سيعيد eachLimit وعدًا إذا لم تنجح في رد الاتصال النهائي.

حسنًا ، حاولت انتظار async.eachLimit لكنها لم تكن تعمل لسبب أو لآخر. هذا ما دفعني للنشر هنا. سآخذ لقطة أخرى.

هل نجحت؟ أنا أواجه نفس الشيء - إنه ببساطة لا ينتظر انتهاء وعود كل التكرارات.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات