Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

A Promise retornada pela Fetch API não tem reject()?

Olá pessoal!

Conforme o código desta tarefa/aula:

class HttpService {

_handleErrors(res) {
    if(!res.ok) throw new Error(res.statusText);

    return res;
}

    get(url) {

        return fetch(url)
            .then(res => this._handleErrors(res))
            .then(res => res.json());
    }
//...

Dúvida: o código acima não tem catch, porque a Promise retornada pela Fetch API não tem reject(), ou seja, tanto sucesso quanto erro são considerados no em res.ok ? Em caso afirmativo, existe alguma motivo em especial para não ter reject()?

Pergunto se haveria algum motivo em especial porque parece melhor incluir um catch para a Promise retornada pelo fetch, do que criar outro método para verificar tanto requisição com sucesso quanto erro em res.ok....

Atenciosamente

3 respostas

Fala aí Elías, tudo bem? Vamos lá:

O código acima não tem catch, porque a Promise retornada pela Fetch API não tem reject(), ou seja, tanto sucesso quanto erro são considerados no em res.ok ?

Seu código não tem catch porque faltou implementar, ao ocorrer algum erro na fetch é possível sim pegar através do catch.

Espero ter ajudado.

Olá Matheus, tudo certo e contigo?

Obrigado pelo retorno.

Concordo contigo, também acho que deveria ter, mas gostaria de entender porque o instrutor não considerou o catch (obs: não foi esquecimento), conforme código acima (copiei da transcrição do vídeo).

Atenciosamente.

solução!

Fala aí Elias, bem e por aí? Acho que passou despercebido, não tem um "porque", acho que ele não viu necessidade e acabou deixando passar essa explicação (uma pequena falha).

Abraços e bons estudos.