De acordo com este artcle , onComplete
e onError
função do subscribe
são mutuamente exclusivas.
Ou seja, os eventos onError
ou onComplete
vão disparar no meu subscribe
.
Eu tenho um bloco lógico que precisa ser executado se eu receber um erro ou terminar meu fluxo de informações com sucesso.
Procurei algo como finally
em python , mas tudo o que encontrei é finally
que precisa ser anexado ao observável que eu crio.
Mas quero fazer essa lógica apenas quando me inscrever e depois que o stream terminar, seja com sucesso ou com erro.
Alguma ideia?
fonte
finally()
método é anexado primeiro, e a assinatura obrigatoriamente passa / falha.finally
bloco viria por último em seu código.A única coisa que funcionou para mim é esta
fonte
Agora estou usando RxJS 5.5.7 em um aplicativo Angular e usar o
finalize
operador tem um comportamento estranho para o meu caso de uso, pois é disparado antes de retornos de chamada de sucesso ou erro.Exemplo simples:
Tive que usar o
add
método na assinatura para realizar o que desejo. Basicamente, umfinally
retorno de chamada após o sucesso ou erro de retorno de chamada. Como umtry..catch..finally
bloco ouPromise.finally
método.Exemplo simples:
fonte