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.
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.
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:
Jede asynchrone Funktion muss ein Versprechen zurückgeben.
Dies wäre in Ihrem Fall drawColorLine
, draw
und requestAnimationFrame
.
Da requestAnimationFrame
eine native, primitiv asynchrone Funktion ist, die leider immer noch einen Rückruf benötigt, müssen wir promisify es:
Alles was auf eine asynchrone Aktion folgt, geht in einen .then()
Callback:
Voila!
%Vor%Tags und Links javascript canvas promise