Observables vs Promises
Oba Obietnice
i Observables
dostarczają nam abstrakcji, które pomagają nam radzić sobie z asynchroniczną naturą naszych aplikacji. Istnieją jednak istotne różnice między tymi dwoma:
Jak widać w powyższym przykładzie,
Observables
może definiować zarówno aspekty asynchroniczne, jak i ich odłączanie.Observables
można anulować.Ponadto,
Observables
może być ponowione za pomocą jednego z operatorów ponawiania dostarczonych przez API, takich jakretry
iretryWhen
. Z drugiej stronyobietnice
wymagają od wywołującego dostępu do pierwotnej funkcji, która zwróciła obietnicę, aby mieć możliwość ponowienia próby.
RxJS zawiera metodę Observable.fromPromise() tworzącą obiekt Observable na podstawie obietnicy oraz Observable.toPromise() - działającą w odwrotnym kierunku. Korzystanie z obietnic nie jest jednak zalecane.