【问题标题】:How can I update my subscribe data?如何更新我的订阅数据?
【发布时间】:2017-11-11 21:57:18
【问题描述】:

我有一个服务,可以对休息 api 进行一些 http 调用。在我的组件上,我订阅了它。如何在不重新调用服务的情况下更新订阅中的数据?

【问题讨论】:

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

标签: angular observable angular-observable


【解决方案1】:

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

假设您有一个 User 对象的可观察对象,该对象具有 OrganizationId 属性,并且您想要与该 OrganizationId 关联的 Organization 对象的可观察对象。您希望它在用户更新时更新,对吗?

这就是您想要使用flatMap 运算符的目的。假设我们的 organizationService 有一个 byId$ 方法,它接受 OrganizationId 并从 http.post() 方法返回一个 observable。

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

您可以将flatMap 视为类似于map,因为它将采用一个值,并根据您传递给它的回调将其转换为另一个值。不同之处在于,如果您以这种方式使用普通的map,您最终会得到一个可观察的可观察的。 flatMap 将打开返回给它的 observable,这样你就只有一个你想要的对象的 observable。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 2017-05-29
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    相关资源
    最近更新 更多