Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何搜索多个api服务_Api_Angular_Typescript_Search - Fatal编程技术网

如何搜索多个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或

我正在用angular 2开发一个搜索引擎。 因此,我使用来自多个平台的API

如果我手动从每个api服务调用搜索函数,它就会工作

但是,是否可以使用相同的foreach api服务呢

每个api服务都具有相同的功能:

search (query: string): Observable<Array<SearchResult>> { ... }

为了在本地存储搜索结果,我有一个由每个api服务扩展的类。此类具有帮助函数等。

根据您需要的行为,您可以使用合并concatforkJoin将多个流合并为一个流

代码看起来基本相同

例如,使用合并将两个流合并为一个流

如果您有一个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";