1
resposta

[Dúvida] chamar novamente a observable em caso de erro na primeira chamada com pipe async

Quando ocorrer um erro na observable quero exibir uma mensagem para o usuário com o botão "TENTAR NOVAMENTE" que realizará uma nova chamada ao servidor, como fazer isso com o pipe async do angular. Segue o código abaixo:

  public product$: Observable<string> = this.api
    .getProduct()
    .pipe(
      catchError(() => {
        alert('erro ao buscar produto, deseja tentar novamente?');
        return of('');
      }),
    );

HTML

<div *ngIf="(product$ | async) as product">
    {{product}}
</div>
1 resposta
  • dá uma conferida nesse artigo tem algumas opções, eu usava o RetryWhen mas ele foi depreciado mas tem outras formas nesse artigo pra vc tentar!!

https://javascript.plainenglish.io/rxjs-retry-with-delay-youll-want-to-build-this-operator-3591261ff5c9

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software