Frage

Ich habe Probleme damit, mir vorzustellen, wie ein Dojo Deferred für das folgende Szenario funktioniert.Grundsätzlich habe ich eine Funktion, die eine Reihe von Elementen durchlaufen und jedes Element auf verzögerte Weise separat verarbeiten soll.Die Verarbeitung jedes Elements erfolgt in einer separaten Methode, die nach Abschluss eine Zurückstellung zurückgibt.Ich möchte in der Lage sein, die Schleife auszuführen, um jedes Element zu bearbeiten und einen Erfolg oder Misserfolg zu melden, wenn es fertig ist.Folgendes habe ich bisher als Testbeispiel erhalten:

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

Was mache ich falsch?Ich erwarte, dass die Ausgabenummern der Reihe nach sind, aber nicht.

Ich möchte auch erkennen können, ob bei der Verarbeitung eines der Elemente ein Fehler aufgetreten ist, und wenn ja, den Rest nicht verarbeiten.

Danke

War es hilfreich?

Lösung

  1. Ich habe beschlossen, dass die Ausgabenummer der Reihe nach sein soll. http://jsfiddle.net/granjoy/mgv6Y/17/ Ihr Code enthält einige Probleme

    • Die Schleifenfunktion sollte den Abschluss verwenden, um die Variable zu halten.
    • Sie sollten das zurückgegebene Validate Deferred jetzt den Prozess Deferred verwenden
    • Angesichts der Tatsache, dass die Funktion process () sofort beendet wird, wird das Protokoll "Alles verarbeitet!"wird zuerst ausgegeben.

      Bearbeiten:

      Ich habe aus der Frage gelernt.Danke, der Autor gibt eine weitere gute Lösung. http://jsfiddle.net/Ayyoudy/mgv6Y/14

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top