【发布时间】:2018-06-07 21:23:19
【问题描述】:
在 Angular 中,我想在路由 resolve 字段中返回一个对象,其中包含一个列表,并且对于列表中的每个项目,我想执行一个额外的请求来修改它。它看起来像这样:
this.employeesService.getEmployees(route.parent.params['department'])
.map(employeesResponse => {
employeesResponse.employees.map(employee =>
employee.status = this.employeesService.checkStatus(route.parent.params['department'], employee))
})
getEmployees 返回一个包装响应对象:
{
operationId: 1
employees: [],
}
checkStatus 返回一个员工状态字符串。
我知道这行不通,但我尝试了很多不同的方法,但不知道如何实现。我知道从第一个请求返回列表时如何执行此操作,但我必须保留此包装器对象。
使用 Rx 执行此操作的最佳方法是什么?我对反应式编程概念很陌生。
【问题讨论】:
-
如果我理解正确,您需要 getEmployees 响应对象,但要添加每个员工的状态。您的
employees.map正在为每个员工添加状态(尽管应该是 forEach)。为什么不在你的 rxjs 映射方法中只使用return employeesResponse?
标签: angular typescript rxjs reactive-programming