При использовании fetch для отработки http-статусов, отличных от 200 я создаю Promise. Я написал такой код и он вроде делает то что нужно, но очевидно, что вызов resp.json().then() отрабатывает параллельно с возвратом ошибки и могут возникнуть потенциальные проблемы. Как в данном случае написать корректный код который не вызовет проблем?
fetch(url, opts)
.then((resp)=> new Promise((resolve, reject) => {
if (resp.ok) {
resolve(resp)
} else {
const error = new Error(resp.statusText);
error.status = resp.status;
resp.json().then(json => {error.data = json}); // Problem here
reject(error)
}
}))
.then(...)
.catch(...)