如何将服务中的项目返回给有角客户端之前进行修改?

时间:2019-05-07 16:44:55

标签: javascript angular-httpclient

从我的数据访问服务返回数据时,修改响应后,我只会变得不确定。我的烟斗怎么了?

.pipe(
  map(result => result['dimensions']),
  map(result => result.forEach(element => {
    result.dimensionItems = element.dimensionItems.map(item => {
      item.parentId = result.dimensionId;
      item.dimensionItemId = Math.floor(Math.random() * 1000);
    });
  })),
  tap(result => console.log('Aiiiaiiii: ', result)),
  catchError(this.handleError)
);

1 个答案:

答案 0 :(得分:1)

forEach返回未定义的[1],因此您需要将代码更改为此:

.pipe(
  map(result => result['dimensions']),
  map(result => {
    result.forEach(element => {
      result.dimensionItems = element.dimensionItems.map(item => {
        item.parentId = result.dimensionId;
        item.dimensionItemId = Math.floor(Math.random() * 1000);
      });
    });
    return result; // You need to return the result after the foreach.
  }),
  tap(result => console.log('Aiiiaiiii: ', result)),
  catchError(this.handleError)
);

从注释中可以看到,用forEach处理结果后,需要返回结果。

参考 [1]-Array.prototype.forEach()-https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach