Angular 如何将承诺的值返回给需要返回静态数据的函数?

Angular 如何将承诺的值返回给需要返回静态数据的函数?,angular,algolia,Angular,Algolia,我正在开发一个Ionic 2应用程序,它有一个我正在使用的组件,该组件利用一个函数,该函数要求返回一个静态数据数组或一个可观察值 我使用Algolia处理搜索,当用户开始键入时,我想查询Algolia并将结果返回到自动完成。主要的问题是,由于Algolia调用返回一个承诺,因此我无法从函数返回的.then()中获取数据。有没有直截了当的方法 Here's my function: getResults(keyword:string) { return this.genresInde

我正在开发一个Ionic 2应用程序,它有一个我正在使用的组件,该组件利用一个函数,该函数要求返回一个静态数据数组或一个可观察值

我使用Algolia处理搜索,当用户开始键入时,我想查询Algolia并将结果返回到自动完成。主要的问题是,由于Algolia调用返回一个承诺,因此我无法从函数返回的
.then()
中获取数据。有没有直截了当的方法

Here's my function:

  getResults(keyword:string) {
    return this.genresIndex.search(keyword).then(result => {
      return result.hits; // <-- this would just be an array of results
    })
  }
这是我的功能:
getResults(关键字:字符串){
返回此.genresIndex.search(关键字)。然后(结果=>{
返回result.hits;//
这需要一个静态的数据数组或一个可观察的
返回

因此,您可以将承诺包装成可观察的,并返回它:

return Observable.from(this.genresIndex.search(..).then(...))

返回一个可观察的,
返回可观察的。从(this.genresIndex.search(…)。然后(…)
@MaximKoretskyi你是一个很棒的人,我希望我能拥抱你。我为此奋斗了几个小时。非常感谢你!不客气)我把它作为一个答案贴了出来,这样你也许可以接受它作为拥抱的替代:)绝对:)再次感谢!
return Observable.from(this.genresIndex.search(..).then(...))