2
respostas

Erro na função

Ao realizar a operação, igual em aula, aparece no meu console o seguinte erro:

listagem-clientes.js:16 Uncaught (in promise) 
TypeError: exibe.forEach is not a function
    at listagem-clientes.js:16

Utilizei o código em aula, como arrumar?


const exibeCliente = (cpf, nome) => {
  const linha = document.createElement("tr");
  const conteudoLinha = `
  <td>${cpf}</td>
  <td>${nome}</td>
  `;

  linha.innerHTML = conteudoLinha;
  return linha;
};

const corpoTabela = document.querySelector("[data-conteudo-tabela]");

listarclientes().then (exibe => {
  exibe.forEach( indice => {
    corpoTabela.appendChild(exibeCliente(indice.cpf, indice.nome))
  })
})
2 respostas

Erica,

A sua listarclientes retorna uma Promise?

Veja o exemplo abaixo em cima do seu código, eu criei a "listarclientes" com uma Promise válida.

<table data-conteudo-tabela></table>

<script>
const exibeCliente = (cpf, nome) => {
  const linha = document.createElement("tr");
  const conteudoLinha = `
  <td>${cpf}</td>
  <td>${nome}</td>
  `;

  linha.innerHTML = conteudoLinha;
  return linha;
};

const corpoTabela = document.querySelector("[data-conteudo-tabela]");

function listarclientes() {
   return new Promise((resolve, reject) => { 
      resolve([{cpf: "123", nome: "client1"},{cpf: "1233", nome: "client12"},{cpf: "12334", nome: "client124"}]);
   });
}

listarclientes().then (exibe => {
  exibe.forEach( indice => {
    corpoTabela.appendChild(exibeCliente(indice.cpf, indice.nome))
  })
})
</script>

OI Desculpe a demora,

Voltou somente os clientes que foi definido na promise:

123    client1
1233    client12
12334    client124

Não veio o que deveria estar na API

Se colocar o:

<table data-conteudo-tabela></table>

<script>
</script>

O código fica todo errado.

Quero carrega os dados da API, o curso deveria ser sobre isso, mas é impossível replicar o que é passado em vídeo.