Zgodnie z tym artykułem , onComplete
a onError
funkcje tych elementów subscribe
wzajemnie się wykluczają.
Czyli albo onError
czy onComplete
imprezy będzie ogień w moim subscribe
.
Mam blok logiczny, który musi zostać wykonany, niezależnie od tego, czy otrzymam błąd, czy pomyślnie zakończę przesyłanie informacji.
Szukałem czegoś podobnego finally
do Pythona , ale znalazłem tylko to, finally
co musi być dołączone do obserwowalnego, który tworzę.
Ale chcę postępować zgodnie z tą logiką tylko wtedy, gdy subskrybuję i po zakończeniu transmisji, czy to pomyślnie, czy z błędem.
Jakieś pomysły?
źródło
finally()
metoda jest dołączana jako pierwsza, a subskrypcja bezwzględnie wymusza przejście / niepowodzenie.finally
blok będzie ostatni w twoim kodzie.Jedyna rzecz, która mi pomogła, to to
źródło
Teraz używam RxJS 5.5.7 w aplikacji Angular i
finalize
operator using ma dziwne zachowanie dla mojego przypadku użycia, ponieważ jest uruchamiany przed pomyślnym wywołaniem zwrotnym lub błędem.Prosty przykład:
Musiałem użyć
add
medhod w subskrypcji, aby osiągnąć to, czego chcę. Zasadniczofinally
wywołanie zwrotne po pomyślnym lub błędnym wywołaniu zwrotnym. Jaktry..catch..finally
blok lubPromise.finally
metoda.Prosty przykład:
źródło