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!