链接映射或链过滤器如何在Angular Http请求中返回一个promise

时间:2017-11-12 22:10:56

标签: javascript json angular lodash

我有一些数据,我拒绝使用lodash的json数组。我需要拒绝多个不需要的关键值。

我想我可以链式映射并再次使用拒绝函数,或者可能为拒绝方法编写谓词函数。

我想我可能会在这里推翻这个问题,有人可以帮助我解决这个问题吗?我是否需要切换到一个observable才能工作?

我希望能够拒绝BEER,LIQUOR,WINE等。数据也是嵌套的。

这是一个示例JSON对象 enter image description here

这是我的服务。

Sentence Type Detector / classifier

}

1 个答案:

答案 0 :(得分:1)

我不认为_.reject可以在匹配条件中处理多个值。因此,您可以对每个被拒绝的值(BEER,WINE,...)多次使用_.reject,但这可能不是最佳解决方案。

相反,您可以将_.reject与自定义谓词函数结合使用,该函数可以一次测试所有值。但你必须对这个测试,我不认为lodash提供内置的解决方案。但我错了......

像这样的东西

gettMenuByLocationID (locationID) {
  return this._http.get('/api/locations/menu', {params: {locationID: locationID}})
             .map((response: Response) => {
               let data = _.reject(response.json(), {_embedded: {menu_categories: [{name: 'BEER'}]}})
               data     = _.reject(data, {_embedded: {menu_categories: [{name: 'WINE'}]}})
               return _.reject(data, {_embedded: {menu_categories: [{name: 'WHATEVER'}]}})
             })
             .toPromise()
             .catch(this.handleError)
}