Функция отображения угловой наблюдаемой
Я работаю над проектом 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()
?