При запросе с сервера с API-интерфейсом JavaScript вы должны сделать что-то вроде
fetch(API)
.then(response => response.json())
.catch(err => console.log(err))
Здесь response.json()
разрешает свое обещание.
Дело в том, что если вы хотите поймать ошибки 404
, вам нужно решить обещание ответа, а затем отклонить обещание на выборку, потому что вы закончите только catch
, если произошла сетевая ошибка. Таким образом, вызов fetch становится чем-то вроде
fetch(API)
.then(response => response.ok ? response.json() : response.json().then(err => Promise.reject(err)))
.catch(err => console.log(err))
Это намного труднее читать и рассуждать. Поэтому мой вопрос: зачем это нужно? Какой смысл иметь обещание в качестве значения ответа? Есть ли лучшие способы справиться с этим?