Функция отображения угловой наблюдаемой

Я работаю над проектом 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() Кажется, что функция работает, я получаю ответ HTTP с [{testName: 'test1', testStatus: 'OK'}, {testName: 'test2', testStatus: 'OK'}],

Затем я сопоставляю Response к массиву Test с mapTests(),

Затем я сопоставляю каждый элемент массива 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() и не mapTests() в getTests()?

0 ответов

Другие вопросы по тегам