# Desafio Vamos montar uma listagem de blog posts, com usuários e comentários. A API que vamos usar pode ser encontrada no seguinte repositório: https://github.com/typicode/json-server ## Tarefa 1 - Listagem de Posts e Comentários - Faça a requisição de 115 posts, de 20 em 20 posts por request, da URL https://jsonplaceholder.typicode.com/posts, a documentação da paginação está aqui https://github.com/typicode/json-server#paginate. - Estas requisições devem ser feitas sequencialmente (só requisita os próximos 20 depois que terminar de requisitar tudo dos 20 anteriores) - Para cada vez que 20 posts forem carregados, carregar todos os comentários de cada um deles de maneira concorrente/paralela (ou seja, requisitar os comentários de todos os 20 posts ao mesmo tempo). - Para pegar os comentários de um post você usa a URL https://jsonplaceholder.typicode.com/posts/ID_DO_POST/comments. Isso deve ser feito antes de carregar os próximos 20 posts. - Renderizar a lista apenas após todas as requisições anteriores estarem completas - Tratar qualquer erro que possa acontecer durante a requisição ⚠️ Atenção ⚠️ - Usar apenas .then e .catch nessa tarefa ## Tarefa 2 - Carregamento de usuários - Após carregar todos os posts, carregar os usuários de todos os 115 posts concorrentemente/paralelamente. - Para carregar um usuário usa-se a URL https://jsonplaceholder.typicode.com/users/ID_DO_USUARIO. Lembrando que um mesmo usuário pode ter mais de um post, então o mesmo usuário não deve ser carregado duas vezes No final, precisaremos ter a seguinte estrutura: ```js [ { /* ...dados do post, / user: {}/ dados do user autor do post /, comments: []/ array de comentários desse post */ } ] ``` ⚠️ Atenção ⚠️ - Usar apenas .then e .catch nessa tarefa ## Tarefa 3 - Refatoração para Async/Await - Refatorar todo o código para usar async/await no lugar de .then .catch ## Bonus - Agora vamos adicionar links de paginação na listagem. Refatorar a função para não carregar todos os posts de uma só vez, ao invés disso devemos ter a paginação sob demanda; - O comportamento da listagem deve ser o mesmo das tarefas anteriores, mostrando todos os comentários e usuários dos posts carregados para a página; - Não requisitar o usuário caso já tenha sido carregado em alguma pagina anterior;