簡體   English   中英

如何搜索多個api服務

[英]How to search multiple api services

我正在開發一個角度為2的搜索引擎。因此我使用來自多個平台的API。

如果我手動調用每個api服務的搜索功能,它就有效。

但是可以做同樣的foreach api服務嗎?

每個api服務都具有相同的功能:

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

在UI中,我想通過制表符分隔結果。

因此每個api服務都有一個標題:

public title: string = "the title";

為了在本地存儲搜索結果,我有一個由每個api服務擴展的類。 這個類有輔助函數等。

根據您需要的行為,您可以使用mergeconcatforkJoin將多個流合並為一個。

代碼看起來幾乎一樣。

例如,使用合並以將2個流合並為一個。

如果您有api列表,則需要撥打電話進行搜索。 你的代碼看起來像這樣。

let apis: string[] = [];

let observables = apis.map(api => search(api)); // get an array of observables

let merged = observables.reduce((previous, current) => previous.merge(current), new EmptyObservable()); // merge all obserbable in the list into one.

merged.subscribe(res => doSomething(res));

本文可能會有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM