In der Regel Auflösung bedeutet entweder erfolgreich oder fehlgeschlagen. Das löst den Aufruf der then
Aktionen aus. Es kann genau einmal für jedes gegebene Versprechen passieren.
erfüllen bedeutet erfolgreich zu "lösen". Das wird die Rückrufaktionen in den then
Aktionen auslösen. Das Gegenstück von "erfüllen" für den Fehler ist zurückweisen.
Aus einer anderen Perspektive, können Sie den Status jedes Versprechen zu einem bestimmten Zeitpunkt als „ungelöst“ oder „gelöst“ und „gelöst“ hat die Zustände Unter (manchmal auch anhängig genannt) kategorisieren von "erfüllt" und "abgelehnt". Ein Versprechen in "erfüllt" Status hat einen Wert, und ein Versprechen in "abgelehnt" Status hat eine Grund.
Die einzelnen Methoden in jeder API, die zur Darstellung dieser Begriffe verwendet werden, unterscheiden sich. Und leider gibt es viele Blogposts und Dokumente, die diese Begriffe verwirren, insbesondere "fullfill", wenn sie "Entschlossenheit" bedeuten oder umgekehrt.
Q
Ich weiß, dass Q nicht sehr gut, aber es scheint, dass seine resolve
Methode tatsächlich erfüllt das Versprechen (Hervorhebung hinzugefügt):
Aufruf Entschlossenheit mit einer nicht-Versprechen Wert Ursachen Versprechen zu sein erfüllt mit diesem Wert.
Die Wendung ist jedoch, dass Sie auch deferred.resolve
mit dem Versprechen nennen können, in welchem Fall das erste Versprechen mehr oder weniger um den Zustand der übergebenen in Versprechen annimmt. Wenn sich beispielsweise die übergebene Zusage im Status "ausstehend" befindet, übernimmt die Zusage den ausstehenden Status der übergebenen Zusage. Das impliziert die leicht ungerade Semantik, dass eine Methode mit dem Namen resolve
das Versprechen nicht löst.
Ich sehe keine "erfüllen" -Methode in der "q" -Dokumentation. https://github.com/kriskowal/q/wiki/API-Reference – Barmar
siehe auch [Was ist die korrekte Terminologie für Javascript verspricht] (http://Stackoverflow.com/a/29269515/1048572) – Bergi