角度可观察的映射函数

时间:2017-12-18 14:35:23

标签: angular angular2-observables

我在Angular项目上工作,我尝试调试这段代码:

@Injectable()
export class TestService {

  private testsListUrl = "/api/test/list"; // [{testName: 'test1', testStatus: 'OK'}, {testName: 'test2', testStatus: 'OK'}]

  constructor(private _http: Http) {
  }

  public getTests(): Observable<Test[]> {
    return this._http.get(this.testsListUrl).map(this.mapTests);
  }

  private mapTests(response:Response): Test[]{
    return response.json().map(this.mapTest);
  }

  private mapTest(response:Test): Test{
    return {
      name: response.testName,
      status: response.testStatus
    };
  }

}

getTests()函数似乎有效,我得到了[{testName: 'test1', testStatus: 'OK'}, {testName: 'test2', testStatus: 'OK'}]的HTTP回答。

然后,我将Response映射到TestmapTests()的数组。

然后,我将json数组的每个元素映射到Test mapTest()

但是这段代码不起作用。当我记录函数调用时,我输入mapTests但不是mapTest

我通过mapTest()中内联我的mapTests()电话来解决我的问题:

private mapTests(response:Response): Test[]{
    return response.json().map(response => ({
        name: response.testName, 
        status: response.testStatus
    }));
}

但我不明白发生了什么......为什么我需要在mapTest()内联 mapTests()而不是{{1}在mapTests()

0 个答案:

没有答案