【发布时间】:2019-10-31 07:26:59
【问题描述】:
我正在尝试在 Angular 8 中构建一个 Angular 应用程序,我从后端获取一个 Observable 并希望订阅它。这是我已经拥有的代码:
this.employeesService.getEmployees$()
.pipe(
tap(employees => {
this.employees = employees;
console.log(this.employees.length);
}),
catchError(err => this.error = err),
finalize(() => {
console.log(this.error);
this.isOperationInProgress = false;
})
)
.subscribe();
this.employeesService.getEmployees$()
这个函数返回一个 Observable,我想用它做很多事情。
当我尝试访问后端但它处于脱机状态时,我没有得到任何函数的返回值。所以这是我的问题:
发生这种情况时,我会尝试调用 finalize 函数。但是这个函数在出错后不会被调用。
有什么办法解决这个问题吗?
【问题讨论】:
-
catchError 必须返回 observable
-
@DamianPioś 所以我可以把我的 this.employees 还给那里?
-
tap不会在发生错误时触发,所以employees将是undefined,你可以像of(error.message)一样返回。