Zeichnen Sie fortlaufende Zeilen im HTML-Zeichenbereich nacheinander

8

Ich versuche, Code für das oben beschriebene Problem zu schreiben. Ich habe versucht, eine Lösung zu finden. Das ist, was ich derzeit habe.

%Vor% %Vor%

Das Problem ist, dass beide gleichzeitig gezeichnet werden. Einer sollte dem anderen folgen. Mit Promis ist es möglich, die zweite Funktion zu verzögern, während die erste Funktion ausgeführt wird und später die zweite Funktion ausführt? Ich habe versucht, etwas auf Promises zu lesen, aber ich konnte nicht übersetzen, was ich verstanden habe in Code.

Vielen Dank im Voraus.

    
Ramana Venkata 27.04.2015, 19:36
quelle

2 Antworten

5

Ja, Sie können Versprechungen verwenden, obwohl Sie zu Lernzwecken vielleicht zuerst eine reine Callback-Lösung schreiben möchten.

Sie sollten sich meine Faustregeln für die Entwicklung von Versprechen ansehen. Lassen Sie uns sie hier anwenden:

  1. Jede asynchrone Funktion muss ein Versprechen zurückgeben.

    Dies wäre in Ihrem Fall drawColorLine , draw und requestAnimationFrame .

  2. Da requestAnimationFrame eine native, primitiv asynchrone Funktion ist, die leider immer noch einen Rückruf benötigt, müssen wir promisify es:

    %Vor%
  3. Alles was auf eine asynchrone Aktion folgt, geht in einen .then() Callback:

    %Vor%

Voila!

%Vor%     
Bergi 27.04.2015, 21:51
quelle
2

Versuchen Sie es mit .animate () , jQuery.Deferred ()

%Vor% %Vor%
    
guest271314 27.04.2015 20:19
quelle

Tags und Links