Tach!
Üblicherweise fängt solch eine Verarbeitungskette mit einem asynchronen Request zum Server an.
Da fällt mir doch ein, dass ich mal ein Promise für einen Dialog verwendet haben. Aufgabenstellung war, dass in einem Dialog eine Eingabe erfolgen soll und der mit OK oder Cancel abgebrochen werden konnte. Im OK-Fall sollte eine Folgeverarbeitung starten. Wie macht man das ohne Promise? Man hängt sich in das Klick-Event vom OK-Button rein. Oder in andere Events, die die verwendete Modal-Dialog-Komponente liefert. Das sieht programmiertechnisch unhübsch aus, wenn man an einer Stelle den Dialog startet und irgendwo anders die Folgeverarbeitung stattfindet. "Irgendwo anders" ist hier definiert als Callback, den man vor dem Aufruf zugewiesen hat.
var dialog = new Dialog()
dialog.accept = function() { ... }
dialog.cancel = function() { ... }
dialog.open();
Irgendwie so sieht das aus. Man liest den Code und sieht accept und cancel als Vorbereitung und kommt dann zum open() und zur Fortsetzung geht man wieder nach open zu accept oder cancel. Hier im Beispiel sieht das noch kompakt und verständlich aus, in echtem Code liegen da viele Zeilen dazwischen.
Mit Promise sieht der Code so aus.
var dialog = new Dialog()
dialog.open()
.then(function () { ... })
.catch(function () { ... })
.finally(function () { dialog.close() });
Das liest sich flüssiger und von oben nach unten in der Reihenfolge des Passierens. Erst das Öffnen und anschließend steht, was anschließend passieren soll.
dedlfix.