1
resposta

Como carregar cada Card de forma assíncrona e mostrar o progresso de cada um deles

Bom dia pessoal, alguém teria uma sugestão ou dica de como carregar cada Card de forma individual na tela, ou seja, tenho 10 cards, porém cada um faz uma requisição a uma entidade diferente e, alguns carregam mais rápido que outros, queria colocar tipo um ProgressSpinner, para indicar que o card está carregando e quando terminar o Card é liberado e os que estão carregando ficam cada um com seu Spinner.

1 resposta

Oi, Sergio, tudo bem?

Para carregar cada card de forma assíncrona e mostrar o progresso de cada um utilizando Angular e RxJS, você pode seguir uma abordagem em que cada card é tratado como um componente individual que gerencia seu próprio estado de carregamento. Aqui está uma sugestão de como você pode implementar isso:

  • Crie um componente Angular para o card. Este componente terá uma entrada (@Input()) que recebe os dados necessários para fazer a requisição específica daquele card.
  • Crie um serviço Angular que será responsável por fazer as requisições HTTP. Cada card vai chamar esse serviço passando os parâmetros necessários para sua requisição.
  • No template do componente do card, inclua um ProgressSpinner que será mostrado ou escondido baseado em uma variável de estado, como isLoading. Você pode usar o Angular Material para um spinner elegante e fácil de integrar.
  • Utilize RxJS para controlar o estado de carregamento. Quando a requisição é iniciada, defina isLoading como true, e quando a resposta é recebida, defina como false. Isso pode ser feito usando o operador finalize do RxJS para garantir que isLoading seja atualizado independentemente do resultado da requisição (sucesso ou erro).

Espero ter ajudado. Caso tenha dúvidas, conte com o fórum. Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!