【发布时间】:2020-03-26 09:59:10
【问题描述】:
我正在尝试从 rxjs 中的其他 web api 获取成员值。
我在一个带有 switchMap 的管道方法中做到了这一点。但是如果获取成员值有问题,那么我想跳过旧模型到下一个方法。
所以我不想在 switchMap 工作后返回 null。
这是我的代码:
(this.repository.getData(`employeecards/list/${this.currentUser.companyId}`) as Observable<EmployeeCard[]>)
.pipe(
flatMap(emp => emp),
tap(emp => emp),
switchMap((empCard: EmployeeCard) => this.repository.getData(`cards/${empCard.cardId}`),(empCard, card) => ({ empCard, card }) ),
//second subscribe
switchMap((emp: { empCard: EmployeeCard, card: LogisticCard }) => this.parraApiService.getBalanceByBarcode(emp.card.barcode),
(emp: { empCard: EmployeeCard, card: LogisticCard }, apiRes: ParraApiResult) => {
if (apiRes.response.isSuccess) {
//I use this subscribe only set to balance
emp.empCard.balance = apiRes.response.data['balance'];
}
return emp.empCard
}),
catchError((e) => {
return of([]); //I want to retun emp value
}),
reduce((acc, value) => acc.concat(value), [])
)
我该如何解决这个问题?
谢谢
【问题讨论】:
-
返回
EMPTY而不是of([]) -
它没有清空它的旧值。我想得到的EmployeeCard模型值
标签: javascript rxjs