Angular 如何更新订阅数据?

Angular 如何更新订阅数据?,angular,observable,angular-observable,Angular,Observable,Angular Observable,我有一个对RESTAPI进行http调用的服务。在我的组件上,我有一个订阅。我怎样才能更新订阅上的数据而不必再打新的电话给服务?这个问题不太清楚,但我想我可以推断出足够的答案 假设您有一个用户对象的可观察对象,该对象上有一个组织ID属性,并且您想要一个与该组织ID相关联的组织对象的可观察对象。你希望它在用户更新时更新,对吗 这就是您希望使用flatMap操作符的目的。假设我们的organizationService有一个byId$方法,该方法接受OrganizationId,并从http.pos

我有一个对RESTAPI进行http调用的服务。在我的组件上,我有一个订阅。我怎样才能更新订阅上的数据而不必再打新的电话给服务?

这个问题不太清楚,但我想我可以推断出足够的答案

假设您有一个
用户
对象的可观察对象,该对象上有一个
组织ID
属性,并且您想要一个与该
组织ID
相关联的
组织
对象的可观察对象。你希望它在用户更新时更新,对吗

这就是您希望使用
flatMap
操作符的目的。假设我们的
organizationService
有一个
byId$
方法,该方法接受
OrganizationId
,并从
http.post()
方法返回一个可观察值

organization$ = user$
    .flatMap(user => organizationService.byId$(user.OrganizationId));

您可以将
flatMap
视为类似于
map
,因为它将接受一个值,并根据您传递给它的回调将其转换为另一个值。不同之处在于,如果您以这种方式使用法线
贴图
,那么最终将得到一个可观察对象的可观察对象
flatMap
将打开返回给它的可观察对象,这样您就有了所需对象的可观察对象。

您希望更新什么值?通常在订阅中,您会将订阅数据分配给本地组件变量。您可以直接更新本地值。发布一些代码?。