спасибо за ваш вопрос.
Официальное определение оператора catchError()
:
Ловит ошибки в наблюдаемой для обработки путем возврата новой наблюдаемой или выдачи ошибки.
Или, другими словами, основная идея этого оператора - возвращать новую наблюдаемую в случае, если произошла какая-то ошибка. Я могу предоставить пример кода с бизнес-логикой, если хотите.
Идея оператора finalize()
состоит в том, чтобы обеспечить возможность запуска побочных эффектов после завершения Observable. Из-за ошибки или просто завершения.
Итак, если вы хотите показать сообщение об ошибке, когда ваша служба BE недоступна, ваш код должен выглядеть примерно так:
this.isOperationInProgress = true;
// I do not recommend the '$' symbol for service methods. But, it's up to you
this.employeesService.getEmployees().pipe(
tap(console.log),
finalize(() => this.isOperationInProgress = false)
).subscribe(
employees => this.employees = employees,
error => this.showErrorMesage(error.message)
)
Если выЗаинтересованы в более подробных объяснениях: Вот отличный блог пост об обработке ошибок.
Надеюсь, это было полезно. Я хотел бы услышать любые отзывы от вас. Хорошего дня!