1
resposta

Duvida de como lidar com muitas requisições

Olá pessoal, tenho um problema e não sei bem como lidar com ele de uma forma que seja agradavel a visualição dá pagina. vamos lá para problema em si, eu preciso fazer uma requisição para api que me retorna uma objeto nesse objeto possui um outro objeto de array com uma lista de ids eu preciso executar get para cada id desse array e mostra para usuario na tela. Com sigo exbir os dados para o usuario porem quando carregar o component vai ataulizando os dados, gostaria de pode exibir todos dados de uma unica vez, ou fazer componente esperar laço de repetição que executar a consulta na api com cada id.

exemplo:primeira consulta objeto:

response : {
id: 1,
name: 'fulano',
phone: [
    {
    id: 321,
    phone: 123456
    },
    {
    id: 322,
    phone: 123456
    },
    {
    id: 323,
    phone: 123456
    },
]

com esse objeto de exemplo eu faço uma consulta dessa forma:

this.serviceFirst(id).subscribe(response => {
    response.phone.foreach(element => {
        this.service.getDetails(element.id).subscribe(resp =>{
            aqui faço push para uma variavel 
        })
    })
})

dessa forma que estou fazendo, o templante carrega e mostra 1 a 3 dados instantaneo porém depois carregar mais 5. alguém saberia lidar melhor com tal problema?

1 resposta

Olá Amanda, tudo bem com você?

Peço desculpas pela demora em obter um retorno.

Para evitar que o componente seja atualizado várias vezes, podemos utilizar a técnica de observables, que consiste em emitir eventos (também chamados de "notificações"), que podem ser valores, erros ou sinais de conclusão, e os observers reagem a esses eventos executando uma ou mais funções de callback. Dessa forma, poderemos trabalhar com fluxos de dados assíncronos no Angular.

Dito isto, uma sugestão para o seu cenário é criar um "observable" para cada requisição na API e usar o operador forkJoin para aguardar que todas as requisições sejam concluídas antes de exibir os dados na tela.

Porém, como é um assunto externo ao curso e que não tenho acesso ao cenário completo do projeto, deixo como recomendação um artigo que será um bom ponto de partida para a resolução do seu problema:

Espero ter ajudado. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

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

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