mit async korrekt (mit forEach)

So, ich habe einen schönen Batzen geschachtelte async-code zusammen läuft und es scheint alles in Ordnung zu sein, außer für mich, wenn ich das Ende. meine Letzte Funktion in einer Serie block ist eine forEach: das geht dann in eine async.parallel

Gelungen, auf die Spur des folgenden chunks, die nicht in Ordnung:

async.forEach(array, function(elem, callback) {
      async.parallel([
          function(callback) {
              database-call-A(elem, unction(err, data)  {
                    if(err){
                        console.log("error on first parallel");
                        callback({err: false}); //will break out
                    } else {
                        elem.c = data;
                        callback();
                    }
              });
          },
          function(callback) {
               database-call-B(elem, function(err, data)  {
                    if(err){
                        console.log("error on first parallel");
                        callback({err: false}); //will break out
                    } else {
                        elem.c = data;
                        callback();
                    }
              });
          } 
       ]); //end async.parallel 

       //if forEach needs a callback after every iteration (which I think it does?)
       console.log("PRINTS N TIMES - ONCE FOR EVERY ITERATION");
       callback(); //both parallel functions have run, call back forEach

 }); //end forEach

 console.log("Donions - prints when finished");

Wenn ich getestet, diese code durch das werfen von print-Anweisungen überall, ich habe bemerkt, dass "DRUCKE N-MAL ..." lief N-mal, dann hab ich "Donions .." und DANN mein tun etwas(); und andere Sachen(); Schritte erste genannte in meiner async.parallel.

Warum ist meine forEach Durchlaufen ohne zu warten, für die Rückrufe von async.parallel?

InformationsquelleAutor gadu | 2013-12-17
Schreibe einen Kommentar