Um etwas Erleichterung zu bekommen, versprechen Sie, es ihnen zu senden, wenn es veröffentlicht wird. Sie geben Ihren Fans eine Liste. Sie können ihre E-Mail-Adressen eingeben, so dass, wenn der Song verfügbar wird, alle abonnierten Parteien sofort erhalten. Und selbst wenn etwas schief geht, sagen wir, ein Feuer im Studio, so dass sie den Song nicht veröffentlichen können, werden sie trotzdem benachrichtigt. Eine gute Faustregel ist es, versprechenketten immer zurückzugeben oder zu beenden, und sobald Sie ein neues Versprechen erhalten, geben Sie es sofort zurück, um Dinge zu verflachen: Dieses nächste Bit beinhaltet eine ganze Reihe neuer ES6-Features, aber es ist nicht etwas, was Sie verstehen müssen, um Versprechen in Ihrem Code heute zu verwenden. Behandeln Sie es wie ein Filmtrailer für einige kommende Blockbuster-Features. Grundsätzlich stellt jedes Versprechen den Abschluss eines weiteren asynchronen Schritts in der Kette dar. Hier ist ein Beispiel für einen Versprechenskonstruktor und eine einfache Executor-Funktion mit “Produzieren von Code”, der Zeit braucht (über setTimeout): Das ist sehr praktisch, denn schließlich ist nicht dazu gedacht, ein Versprechensergebnis zu verarbeiten. So geht es durch. Das Versprechen-Objekt kann vielen Beobachtern zugeordnet werden, die benachrichtigt werden können, wenn das Versprechen seine Aufgabe mit dem resultierenden Wert erfüllt oder wenn das Versprechen fehlschlägt, um den Grund für den Fehler mithilfe des Fehlerobjekts zu liefern. Wenn es abgeschlossen ist, geben die Beobachter des Versprechens ein anderes Versprechensobjekt zurück, oder sie können ungültig zurückkehren, um das Abonnement zu beenden. Wenn es ein anderes Versprechensobjekt zurückgibt, kann es verwendet werden, um mehrere Verkettungspipelines asynchroner Aufgabentransformationswert aus jedem Versprechen auszuführen.

Anstatt das verzögerte Anti-Muster zu verwenden, sollte der Code einfach das Versprechen zurückgeben, das er bereits hat, und Werte mithilfe von return weitergeben: Wenn Sie etwas von einem then() Rückruf zurückgeben, ist es ein bisschen magisch. Wenn Sie einen Wert zurückgeben, wird der nächste then() mit diesem Wert aufgerufen. Wenn Sie jedoch etwas Versprechen-ähnliches zurückgeben, wartet der nächste dann() darauf und wird nur aufgerufen, wenn sich dieses Versprechen beruhigt (erfolgreich/fehlschlägt). Beispiel: Es ist üblich, zwei oder mehr asynchrone Vorgänge zurück nach hinten auszuführen, wobei jeder nachfolgende Vorgang beginnt, wenn der vorherige Vorgang erfolgreich ist, mit dem Ergebnis aus dem vorherigen Schritt. Wir erreichen dies, indem wir eine Verheißungskette schaffen.