在 Angular 2 中将 .map 与 http 结合使用

Use of .map with http in Angular 2

我想知道在 Angular 2 中使用 http 调用任何 api 时我们真的需要 .map 吗?

请检查我下面的代码。它在 .map 甚至没有 .map 的情况下工作正常。如果 api returns 数据那么它将 return 成功,否则它将 return 错误。在执行某些操作后,我还将 return 来自此处的任何模型数据。那么,我需要 Observable 吗?使用它有什么好处吗?我在 component 端使用 .subscribe 来接收数据。这很好还是我需要任何改进?

returnData: ReturnData;
callyAPI(body: modelData) {
     return this.http.post(URL, body)
           .do(data => {
                for (let i = 0; i < data.length; ++i) {
                   this.returnData.push(data[i]);
                }
                return this.returnData;
            },
               error => {});
      });
}

您不需要使用 map,但 do 在这里绝对是错误的运算符

do 应该为每个事件执行一些代码,但不会修改事件值,而 map 可以像您在示例中那样用不同的值更新或替换事件.

https://github.com/ReactiveX/rxjs/blob/master/src/operator/do.ts#L13-L14

  • Perform a side effect for every emission on the source Observable, but return
  • an Observable that is identical to the source.