我有一项服务可以对休息 api 进行一些 http 调用。在我的组件上,我订阅了它。如何在不重新调用服务的情况下更新订阅中的数据?
问问题
85 次
1 回答
1
这个问题还不是很清楚,但我想我可以推断出足够的信息,希望能提供答案。
假设您有一个对象的可观察User
对象,该对象具有OrganizationId
属性,并且您想要与该Organization
对象关联的对象的可观察对象OrganizationId
。您希望它在用户更新时更新,对吗?
这就是您想要使用flatMap
运算符的目的。假设我们organizationService
有一个byId$
方法,它接受并从该方法OrganizationId
返回一个 observable 。http.post()
organization$ = user$
.flatMap(user => organizationService.byId$(user.OrganizationId));
您可以认为flatMap
与 类似map
,它将采用一个值,并根据您传递给它的回调将其转换为另一个值。不同之处在于,如果你map
以这种方式使用法线,你最终会得到一个可观察对象的可观察对象。flatMap
将解开返回给它的可观察对象,因此您只有一个所需对象的可观察对象。
于 2017-06-09T20:33:34.967 回答