如何 return 对需要静态数据 returned 的函数的承诺值?

How to return the value of a promise to a function that requires static data to be returned?

我正在开发一个 Ionic 2 应用程序,它有一个我正在使用的 autocomplete 组件,该组件使用一个函数,该函数需要静态数据数组或可观察到 return编辑

我正在使用 Algolia 处理搜索,当用户开始输入时,我想查询 Algolia 并将结果 return 自动完成。主要问题是,由于 Algolia 调用 return 是一个承诺,我无法从 .then() 中获取要从函数中 return 编辑的数据。有没有直接的方法来做到这一点?

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
    })
  }

这里是组件 HTML:

<ion-auto-complete [dataProvider]="_genres"></ion-auto-complete>

[dataProvider] 引用包含函数 getResults(keyword) 的提供者,所以它就像 this._genres.getResults(keyword) 之类的东西。

我不太确定解决这个问题的方法,因为我正在使用的模块有一套非常固定的从外部数据源获取结果的方法。

有人有什么建议吗?

which requires either a static array of data or an observable to be returned

所以你可以将 promise 包装到一个 observable 中,return 它:

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