Ogólnie rzecz biorąc, rozwiązać oznacza, że ELEKER odnosi sukces lub nie. To właśnie powoduje wywołanie akcji then
. Może się zdarzyć dokładnie raz dla każdej danej obietnicy.
spełniają oznacza "rozwiązać" pomyślnie. To spowoduje wywołanie zwrotne sukcesu w akcjach then
. Odpowiednikiem "spełnienia" dla niepowodzenia jest odrzucenie.
z innej perspektywy, można kategoryzować status każdej obietnicy w danym momencie jako „nierozwiązany” (czasami nazywane także oczekiwaniu) lub „rozwiązany” i „rozwiązane” posiada sub-stany "spełnione" i "odrzucone". Obietnica w statusie "spełnione" ma wartość o wartości, a obietnica w statusie "odrzuconym" ma powód.
Poszczególne metody w każdym interfejsie API używane do reprezentowania tych pojęć są różne. Niestety istnieje wiele postów i dokumentów na blogu, które mylą te terminy, w szczególności używając "fullfill", gdy mają na myśli "rozwiązać" lub odwrotnie.
Q
nie wiem Q bardzo dobrze, ale wydaje się, że jego metoda resolve
faktycznie spełnia obietnicę (podkreślenie dodane):
Wywołanie postanowienie z przyczyn wartość inna niż obietnica obiecuję być spełniona z tą wartością.
Skręt jest jednak to, że można również nazwać deferred.resolve
z obietnicą, w którym to przypadku pierwsza obietnica bardziej lub mniej zakłada stan przechodzi w obietnicy. Na przykład, jeśli przekazana obietnica jest w stanie "oczekującym", obietnica przyjmuje stan oczekiwania na przekazaną obietnicę. To sugeruje nieco dziwną semantykę, że metoda o nazwie resolve
w rzeczywistości nie rozwiązuje obietnicy.
Nie widzę metody "spełnij" w dokumentacji "q". https://github.com/kriskowal/q/wiki/API-Reference – Barmar
zobacz także [Jaka jest właściwa terminologia dla obietnic javascript] (http://stackoverflow.com/a/29269515/1048572) – Bergi