给定 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(使用前将#替换为@)