Я пытаюсь перехватить 103 Http-сообщение об ошибке.Вызов службы возвращает значение 103, если сервер понял запрос и начнет его обрабатывать, но ресурс немедленно недоступен.Что я хотел бы сделать, так это когда я получу 103, я бы хотел повторить попытку получения ресурса через каждые 5 секунд до 5 раз, и в конце которого я бы хотел, чтобы тайм-аут и вернул ошибку 404.Это то, что я до сих пор
getDoc() {
return this.getError()
.retryWhen((errors: any) => {
return errors.switchMap((sourceError) => {
console.log(sourceError);
if (sourceError.status === 103) {
console.log('status is 103');
const notFoundError = new HttpErrorResponse({
status: 404
});
return errors.delay(5000).take(5).concat(Observable.throw(notFoundError));
}
return Observable.throw(sourceError);
});
})
.toPromise();
}
getError() {
console.log('getting error');
return Observable.throw(new HttpErrorResponse({
status: 103
}));
}
с функцией getError (), я пытаюсь имитировать 103, потому что сервер еще не отправляет 103.Возможно, getError () не является хорошим представлением ответа httpError.Я не был уверен, как еще воспроизвести и бросить наблюдаемую ошибку.
В любом случае, эта настройка не работает.Он вызывает getError (), завершается сбоем и проходит до console.log («status is 103») и после этого ничего.Любая помощь приветствуется.