Różnica polega na łańcuchowym i obsługi błędów oraz rejestrowanie błędu:
Q(...)
.then(...)
.finally();
Tutaj, jeśli then
rzuca The finally
będzie nadal działać, ale błąd nie będzie się zalogować. W Q finally
działa niezależnie od tego, czy .then
zakończyło się powodzeniem, czy nie. Jest to podobne do słowa kluczowego finally
w JS try/catch/finally
. W tym przypadku możliwe jest również podłączenie łańcuchów dodatkowych then
s.
Q(..)
.then()
.done();
Tutaj done
wskazuje, że łańcuch obietnica została zakończona, nie można do niego łańcuch dłużej. Jeśli przekażesz go tylko do obsłużonego programu obsługi, nie będzie on działał, jeśli zostanie odrzucony then
i zarejestruje błędy, jeśli zakończy się wyjątkiem.
Jakie argumenty przechodzisz do '.then',' .finally' i '.done'? – Bergi
Przeczytałem dokumentację i nie znalazłem odpowiedzi, która byłaby tak oczywista. –
obietnica jest teraz częścią specyfikacji JS, części standardu ECMAScript 2015 (ES6). – Pieter