Was ist die callback-und err in async.während Sie verwendet?

Ich versuche, async.während sich zu regenerieren, eine zufällige Zahl zwischen 0 und der Länge des Arrays, bis die Länge des Elements an diesem index ist größer als die angegebene Länge. Ich wollte mit async.während für diese, aber die syntax ist nicht ganz klar für mich. Ich dachte über das tun der folgende:

var selectParagraph = function(paragraphs, callback){
    var index = Math.floor(Math.random() * paragraphs.length
    async.whilst(
        function(){ 
            return paragraphs[index].length < minParagraphLength; 
        },
        function(cb) {
            index = Math.floor(Math.random() * paragraphs.length);
        },
        function(err) {
            console.log(paragraphs[index]);
            callback(err, paragraphs[index]);
        }
    }

Aber das funktioniert nicht. Ich vermute, es ist weil ich nicht das cb für die zweite Funktion überall, aber ich nicht genau weiß wie ich es verwenden soll. Kann ich einfach anrufen cb() nach dem ändern der index? Was genau bedeutet die variable err enthält?

  • Warum bist du nicht einfach mit einem normalen while loop hier? Es scheint nicht, dass Sie machen alle asynchronen Aufrufe.
  • Ich habe zum ausführen einer callback-nach der while-Schleife wird beendet. Nicht die callback passieren, bevor die normale while-Schleife beendet wird? Ich will hinzufügen, den Rückruf in meinem code-Beispiel für Klarheit.
  • Ein while - Schleife wie diese ist synchron (es hängt nicht von alle asynchronen Operationen), so können Sie Ihren Rückruf, nachdem es beendet hat.
  • Warum führen Sie einen Rückruf? Ihrer Funktion tut nichts async, also sollte es nicht brauchen, um einen Rückruf.
  • Diese while-Schleife ausgeführt wird, in eine Funktion, die aufgerufen wird, in der main-Funktion, so dass ich ausführen muss, um ein callback mit dem gewählten index der main-Funktion.
InformationsquelleAutor Eva | 2015-04-30
Schreibe einen Kommentar