Tach!
in „erster Näherung“ sind Promises nur eine elegante Methode, um asynchrone Prozesse und deren Callbacks zu organisieren.
Ja, so kann man das zusammenfassen. Promises fügen nichts neues hinzu, was man nicht auch schon vorher bei asynchronen Aufgaben mit Callbacks hätte lösen können. Sie lösen das Problem nur eleganter.
Neu ist (aus meiner Sicht) die Möglichkeit, mit
.all
auf den Abschluss vieler Ereignisse zu warten.
Ja, das wäre ohne diese Möglichkeit von Promises nur recht umständlich zu lösen. Ein Anwendungsfall wäre mehrere Requests an eine REST-API stellen zu müssen, und erst alle Ergebnisse abwarten zu müssen, um mit den Daten weiterarbeiten zu können. Man müsste in jedem einzelnen Request-Callback nachschauen, ob die anderen bereits fertig sind. Mit Promises steckt man alle Requests in einen eigenen Promise und fasst sie zusammen.
var p1 = createRequest(someUrl); // gibt ein Promise zurück, das hier noch nicht mit then() behandelt wird
Promise.all([p1, p2, p3]) // aber hier, zusammen mit den anderen analog zu p1 gestarteten.
.then( ... );
dedlfix.