gpt4 book ai didi

angular - 手动触发可观察?

转载 作者:行者123 更新时间:2023-12-04 03:14:24 26 4
gpt4 key购买 nike

我有一个包含 CRUD 操作集合的服务。其中之一是“一劳永逸”的交易。所有返回 HTTP observables 如下:

  getUsers(): Observable<User[]> {
return this.http.get(this.baseURL + '/api/users').map((response: Response) => response.json()).share();
}

现在,我有一个组件通过异步管道订阅了该服务:

this.users = this.userService.getUsers();

<md-list-item *ngFor="let user of users | async;>

在另一个组件中,我想调用 getUsers方法(因为它对数据执行了一些操作),并让其他组件自动更新。

this.service.getUsers()当然不起作用,因为它需要订阅。

有什么方法可以使订阅/可观察永久化吗?我错过了什么吗?

我通常会做一些事情,其中​​组件直接订阅服务中的主题,然后我手动更新它。但是想知道是否有一些花哨的虚假方式。

最佳答案

在从 HTTP 调用创建的可观察对象的情况下,如果订阅两次,相应的请求将被调用两次)默认情况下,此类可观察对象是冷的(它们不能共享)。

您可以使用 share 方法使您的 observable 变热:

import 'rxjs/add/operator/share';

this.users$ = this.userService.getUsers().share();

关于angular - 手动触发可观察?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42358911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com