В блоке catch ошибки в запросе fetch можно получить код состояния (status code) следующим образом:
```javascript
fetch('https://example.com/api')
.then(response => {
if (!response.ok) {
throw new Error(response.status);
}
// дальнейшая обработка успешного ответа
})
.catch(error => {
console.log(error.message); // выводит код состояния ошибки
});
```
В этом коде мы бросаем ошибку с кодом состояния, если ответ сервера не является успешным (имеет код состояния, отличный от 200-299). Затем в блоке catch мы можем получить код состояния, используя `error.message`.
Если запрос на сервер не достигает этого момента из-за обработки в блоке catch, код состояния может быть недоступен напрямую. Однако, вы можете передать код состояния вместе с ошибкой, чтобы иметь доступ к нему в блоке catch. Например:
```javascript
fetch('https://example.com/api')
.then(response => {
if (!response.ok) {
throw new Error(response.status);
}
// дальнейшая обработка успешного ответа
})
.catch(error => {
error.statusCode = error.message; // сохраняем код состояния в свойстве 'statusCode'
throw error;
})
.catch(error => {
console.log(error.statusCode); // выводит код состояния ошибки
});
```
Таким образом, мы сохраняем код состояния в свойстве `statusCode` ошибки в блоке catch, а затем можем получить его в последующих блоках catch или обработчиках ошибок.