Angular 2 从 Observable 获取项目的方法

2024-06-26

给定 Angular 2 服务中的以下 Typescript:

getLanguages () {
    return this.http.get(this._languagesUrl)
        .map(res => <Language[]> res.json().data)
        .catch(this.handleError);

在需要从数组中查找特定项目的情况下,我很难使用它。例如,我不能执行以下操作,因为filter期望一个Observable<Language>而不是一个Observable<Language[]>正在被退回。

getLanguages().filter(language => language.id == 3) // Error

我意识到我的问题可能是我混合了同步和异步行为,所以我将提供我的用例:用户可以输入语言 ID,我想显示关联的语言名称。我想借力getLanguages()Observable结果是因为它已经在项目的其他地方使用。我还想实现一些缓存,这样每次查找时就不会发出 HTTP 请求。

有什么想法吗?


在 Observable 中查找项目

    let item: Language;
    langugages. // observable cached data
        .subscribe((items: Language[]) => item = items.find(p => p.id == 3));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 2 从 Observable 获取项目的方法 的相关文章

随机推荐