1
resposta

Dúvida

Tenho uma dúvida no seguinte trecho do código:

return fetch(`http://localhost:3000/profile/${id}`, {
        method: 'DELETE'
    })
    .then(resposta => {
        if (!resposta.ok){
            throw new Error('Não foi possível remover um cliente');
        }
    })

Não entendi por que estamos tratando erros com o then, sendo que só vai entrar no then se deu tudo ok com a requisição. Não deveríamos usar o catch nesse caso?

1 resposta

Olá, Dante! Tudo bem?

Na realidade, o catch trataria o erro na requisição. Ou seja, houve um problema no processo da requisição, um comportamento inesperado.

No caso da resposta não ser ok, a requisição foi bem sucedida, recebeu uma resposta, mas essa resposta não possui um código de sucesso (ou seja 200 a 299).

Isso acontece em casos como, por exemplo, o usuário não tem permissão para remover o cliente, ou o cliente não existe.

Se quiser, pode dar uma olhada na MDN sobre essa propriedade e também sobre os códigos HTTP.

Bons estudos!