2
respostas

[Bug] editar parou de funcionar ao implementar async/await

import { clienteService } from "../service/cliente.service.js"

(async () => {
    const pegaUrl = new URL(window.location)
    
    const id = pegaUrl.searchParams.get('id')
    
    const inputNome = document.querySelector('[data-nome]')
    const inputEmail = document.querySelector('[data-email]')
    
    const detalhe = await clienteService.detalhaCliente(id)
    inputNome.value = detalhe.nome
    inputEmail.value = detalhe.email
    
    const form = document.querySelector('[data-form]')
    
    form.addEventListener('submit', async (event) => {
        event.preventDefault()
        await clienteService.atualizaCliente(id, inputNome.value, inputEmail.value)
        window.location.href = '../telas/edicao_concluida.html'
    })
})

Meu código ficou assim, e por algum motivo não aparece nenhum erro no console. Ao tentar editar um cliente, é feito o redirecionamento, mas os campos de nome e email nãpo sã carregados.

Alguém pode ajudar?

2 respostas

Eu simplesmente tirei o async que envolvia todo o código.

import { clienteService } from "../service/cliente.service.js"

const pegaUrl = new URL(window.location)

const id = pegaUrl.searchParams.get('id')

const inputNome = document.querySelector('[data-nome]')
const inputEmail = document.querySelector('[data-email]')

const detalhe = await clienteService.detalhaCliente(id)
inputNome.value = detalhe.nome
inputEmail.value = detalhe.email

const form = document.querySelector('[data-form]')

form.addEventListener('submit', async (event) => {
    event.preventDefault()
    await clienteService.atualizaCliente(id, inputNome.value, inputEmail.value)
    window.location.href = '../telas/edicao_concluida.html'
})

Isso foi o suficiente para voltar a funcionar normalmente.

Espero ter ajudado.

Olá, Thiago.

Tudo bem?

Que bom que conseguiu resolver, e muito obrigado por retornar aqui com a solução. Parabéns :)

Valeu.

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