Я делаю http-запрос к API бэкэнда. Я намеренно изменил URL-адрес, который возвращает 503, чтобы я мог правильно обрабатывать ошибки. Однако ответ об ошибке 503 здесь не возвращается .
const requestOptions = {
url: "https://httpstat.us//503",
method: "get",
// raxConfig: retryConfig,
};
const $metrics = defer(() => from(axios(requestOptions))));
const metrics = await $metrics.pipe(
map((val: any) => {
if (val.data.metrics.length === 0) {
throw val;
}
return val;
}),
retryWhen((errors) => errors.pipe(delay(2000), take(10))),
).toPromise();
console.log("metrics", metrics)
console.log в конце возвращает
не определено
Я ожидаю увидеть ответ на обещание http, которое является ошибкой состояния 503.
Контекст: я использую rxjs для обработки, когда нужно повторить http-запрос. Данные могут быть не готовы (длина === 0). Я повторяю до 10 раз, пока данные не появятся. Логика более сложна внутри функции карты, но я пропустил некоторые из них, поскольку она не имеет отношения к делу.