1
resposta

Problema com a Async

Boa tarde. Tenho tido o mesmo problema que a Ana do comentário anterior, a principio achei que fosse o PreventDefaut() que tinha sido executado errado, mas não era. Por orientações dos comentários anteriores também verifiquei o meu back-end afim de verificar se houve algum erro, mas tanto a fonte quanto a execução ao me ver estavam corretos: Insira aqui a descrição dessa imagem para ajudar na acessibilidade .

Notei que no Devtools, aparecia uma mensagem bem rápidas sobre as promesis, então fiquei no caminho de que tinha algo errado com a forma do qual minha Async foi executada. Creio que os meus códigos tanto de import quanto de interação estejam certos. Vou deixar eles afim de análise para resolução.

const api = {
    async buscarPensamentos() {
        try {
            const response = await fetch('http://localhost:3000/pensamentos')
            return await response.json()
        } catch (error) {
            alert('Erro ao buscar pensamentos')
            throw error
        }
    }, 

    async salvarPensamento(pensamento) {
        try {
            const response = await fetch('http://localhost:3000/pensamentos', {
                method:"POST",
                headers: {
                    "Content-Type": "application/json"
                },
                body: JSON.stringify(pensamento)
            }) 
            return await response.json()
        } catch (error) {
            alert('Erro ao buscar pensamentos')
            throw error
        }
    }


}

export default api;
import ui from "./ui.js";
import api from "./api.js";

async function manipularSubimissaoFormulario(event) {
    event.preventDefaut()
    const id = document.getElementById('pensamento-id').value 
    const conteudo = document.getElementById('pensamento-conteudo').value
    const autoria = document.getElementById('pensamento-autoria').value 

try {
    await api.salvarPensamento({ conteudo, autoria })
    await ui.renderizaPensamentos()
} catch (error) {
    alert('Erros ao salvar pensamentos')
}
}

document.addEventListener('DOMContentLoaded', () => {
    ui.renderizaPensamentos()

    const formularioPensamento = document.getElementById('pensamento-form')
    formularioPensamento.addEventListener("submit", manipularSubimissaoFormulario)
    console.log

})
import api from './api.js'

const ui ={
    async renderizaPensamentos () {
        const listaPensamentos = document.getElementById('lista-pensamentos')
        try {
            const pensamentos = await api.buscarPensamentos()
            pensamentos.forEach(ui.adcioncionarPensamentosNaLista)
        } catch (error) {
            alert('Erro ao renderizar pensamentos.')
        }
    }, 

    adcioncionarPensamentosNaLista(pensamento) {
        const listaPensamentos = document.getElementById('lista-pensamentos')
        const li = document.createElement('li')
        li.setAttribute('data-id', pensamento.id)
        li.classList.add('li-pensamento')

        const iconeAspas = document.createElement('img')
        //iconeAspas.setAttribute('src', 'assets/imagens/aspas-azuis.png')
        //iconeAspas.classList.add('icone-aspas')

        iconeAspas.src = "assets/imagens/aspas-azuis.png"
        iconeAspas.classList.add('icone-aspas')

        const pensamentoConteudo = document.createElement('div')
        pensamentoConteudo.textContent = pensamento.conteudo
        pensamentoConteudo.classList.add('pensamento-conteudo')

        const pensamentoAutoria = document.createElement('div')
        pensamentoAutoria.textContent = pensamento.autoria
        pensamentoAutoria.classList.add('pensamento-autoria')

        li.append(iconeAspas)
        li.append(pensamentoConteudo)
        li.append(pensamentoAutoria)
        listaPensamentos.append(li)


    }
}

export default ui;
1 resposta

Oi, Luan! Tudo certo?

Executei o projeto com o seu código e identifiquei que o problema estava justamente no uso do preventDefault na linha 5 do arquivo main.js. Notei que faltou um "l" na palavra Default, e isso gerou um erro que apareceu no console do meu navegador e fazendo essa correção, o projeto executou normalmente.

Peço que você dê uma conferida no projeto para corrigir esse detalhe. Além disso, por favor, verifique a versão do json-server que está utilizando, executando o comando json-server --version, para garantirmos que estamos alinhados com a mesma versão.

Caso o problema persista, seria ótimo se você pudesse subir o projeto completo no GitHub para que eu possa analisar com mais calma e ajudar de forma mais assertiva.

Se possível, também dê uma olhada no console do navegador para verificar se aparecem outras mensagens de erro. Se encontrar algo, por favor, me envie um print para facilitar o diagnóstico.

**Fico no aguardo e à disposição para ajudar no que for preciso. **