angular - 如何创建一个消耗另一个可观察函数的可观察函数
问题描述
我需要在角度服务中缓存查找,我将从 web api 获取国家列表并将其存储在变量Countries
bygetCountries
中,知道有时我需要将列表Countries
发送回调用者
我也需要过滤国家id
所以我使用 getCountryByID
我如何返回可观察的getCountries
和getCountryByID
在下面的代码中,返回值是未初始化的列表,当触发下一个时,调用者不会收到新值
Countries: LookupModel[];
getCountries(): Observable<LookupModel[]> {
if (!this.Countries || this.Countries.length == 0) {
this._lookupsClient.lookupsAll('Countries')
.subscribe(
result => {
this.Countries = result;
return Observable.of(this.Countries);
},
error => {
return <Observable<LookupModel[]>><any>Observable.throw(error);
});
}
//this is returning only
return Observable.of<LookupModel[]>(this.Countries);
}
getCountryByID(Id: string): Observable<LookupModel> {
this.getCountries().subscribe(next => {
let temp = next.filter(y => y.value == Id);
if (temp && temp.length > 0) {
return temp[0];
}
else { return Observable.of(new LookupModel({ name: Id })); }
}
);
//this is returning only
return Observable.of(new LookupModel({ name: Id }));
}
解决方案
推荐阅读
- ios - 如何交互式收缩和增长 Table View Cell?
- c++ - 无法使用 Boost stacktrace + backtrace 获取行号
- javascript - Heroku 的 Websockets 在 chrome/firefox 上给出 404
- java - 谜语 for(... i++)
- json - 尝试在 Postgres 中插入 JSON 字段时出错
- sql-server - SSIS & SQL Server - 使用 SSIS 执行 SQL 任务在 SQL Server 中运行存储过程,然后将结果集返回到 SSIS 对象变量
- javascript - 重新渲染一个 React 组件
- python-3.x - Gtk.Application.run() 与 Gtk.main() Python3 中的最后机会异常处理
- javascript - 无法解决:地理编码未成功,原因如下:OVER_QUERY_LIMIT
- haskell - Nix GLFW Haskell 绑定缺少库?