【发布时间】:2020-04-19 09:44:00
【问题描述】:
这是我需要在应用程序的各个部分订阅的两种方法:
getProducts(): Observable<Product[]> {
return this.http.get<Product[]>(this.url);
}
getProductsByIds(ids: number[]): Observable<Products[]> {
return this.getProducts()
.map(products => products.filter(products => ids.includes(product.id)));
}
这适用于我的大多数组件,但在一个组件中,我事先知道id-s,只想显示 id-s 为 1、2、9、18 的 4 个产品。我想调用像这样的方法:getProductsByIds([1, 2, 9, 18]))。我只知道如何订阅这两个 observables,但是我怎样才能一劳永逸地获得这 4 个产品(不需要值流)?我一定错过了一些基本的讲座..
【问题讨论】:
-
这些值是静态数据吗?
-
是的,产品一直都是一样的,id-s一样,我只是在应用中过滤它们。
-
dose stackoverflow.com/questions/42753212/… 是您问题的答案
-
谢谢大家的回答! Plochie,谢谢你,这很有意义。现在我正在组件中进行所有订阅(而不是在服务中),所以我希望重构所有内容不会太多。由于我有很多其他过滤方法(例如,基于不同类型的产品/搜索/收藏/等),我必须考虑一下我如何能够重新处理它。
标签: angular components observable