Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

duvida na parte do código/reclamação

listaClientes().then(data =>{
    data.forEach(elemento => {
        tabela.appendChild(criaNovaLinha(elemento.nome, elemento.email))
    })
})

Antes data era uma const que recebia o http.response, agora virou uma função? Queria uma melhor explicação de como que o código vai entender que, agora, data é o dado que vem do http.response.

Queria deixar aqui minha insatisfação, e pelo visto no fórum, essa insatisfação não é só minha. A didática é muito atropela e pouco explicativa, mesmo eu tendo feito cursos anteriores que são pré-requisitos, fica muito difícil de entender certas coisas e, não só eu mais muita gente, acaba tendo que copiar e colar para seguir em frente. A reclamação é principalmente sobre os cursos: JS na web: CRUD com JavaScript assíncrono e JavaScript na Web: validação de Formulários e HTML5. Existem comentários semelhantes, de tempos atrás, nessa plataforma e pelo vista nada foi feito.

1 resposta
solução!

Oi Nathalia, tudo bom? Eu vou tentar te esclarecer, quando a gente chama a função listaClientes, ele nos retorna uma lista [] de objetos {}

Aqui como é retornado:

data = [
    {
      "nome": "felipe",
      "email": "felipe@alura.com",
      "id": 1
    },
    {
      "nome": "Eugênio",
      "email": "eugenio@email.com",
      "id": 2
    }
  ]

Então, ele retorna tudo isso dentro de data, ai o que a gente faz? A gente percorre cada elemento desse array, que é um objeto cliente e vai adicionando os atributos deles na linha, e a gente usa o forEach que é semelhante ao for, a gente so precisa nomear como vai ser cada elemento separado, vou renomear as variáveis da funçãõ que voc mandou pra ver se esclarece mais, compare com a que voc mandou:

listaClientes().then(TodosOsClientes =>{
  // dentro do forEach tem uma função que tem como parametro, um elemento do array de todos os clientes
    TodosOsClientes.forEach((cadaCliente) => {
    // pra cada cliente dentro de todos os clientes, eu vou criando uma linha e adicionando no elemento tabela
        tabela.appendChild(criaNovaLinha(cadaCliente.nome, cadaCliente.email))
    })
})