如何搜索多个api服务
我正在用angular 2开发一个搜索引擎。 因此,我使用来自多个平台的API 如果我手动从每个api服务调用搜索函数,它就会工作 但是,是否可以使用相同的foreach api服务呢 每个api服务都具有相同的功能:如何搜索多个api服务,api,angular,typescript,search,Api,Angular,Typescript,Search,我正在用angular 2开发一个搜索引擎。 因此,我使用来自多个平台的API 如果我手动从每个api服务调用搜索函数,它就会工作 但是,是否可以使用相同的foreach api服务呢 每个api服务都具有相同的功能: search (query: string): Observable<Array<SearchResult>> { ... } 为了在本地存储搜索结果,我有一个由每个api服务扩展的类。此类具有帮助函数等。根据您需要的行为,您可以使用合并、concat或
search (query: string): Observable<Array<SearchResult>> { ... }
为了在本地存储搜索结果,我有一个由每个api服务扩展的类。此类具有帮助函数等。根据您需要的行为,您可以使用合并、concat或forkJoin将多个流合并为一个流 代码看起来基本相同 例如,使用合并将两个流合并为一个流 如果您有一个API列表,则需要调用以进行搜索。您的代码将如下所示
let-api:string[]=[];
让observables=api.map(api=>search(api));//获取一组可观察的对象
let merged=observables.reduce((上一个,当前)=>previous.merge(当前),new EmptyObservable());//将列表中的所有可观察项合并为一个。
合并。订阅(res=>doSomething(res));
这篇文章可能是。使用类似于
foreach(让apiServices的服务)-->service.search()的东西会很酷,我不知道角度,但在Java中,我会构建一个Map
,将标题映射到可观察的实例……因为您想按选项卡显示结果,为什么不构建一个包含选项卡内容的组件并对其中一个api进行搜索呢?每个服务都有一个可观察的searchResults
如果我点击搜索按钮,我想搜索每个api。但是当我点击一个选项卡时,我可以看到另一个api的结果。
public title: string = "the title";