Angular 5 Type Script.
У меня проблема с тем, что свойство Dog [] недоступно при использовании функции карты.Моя цель - получить ответ json, проанализировать идентификаторы и создать несколько новых запросов с этим ответом.Я написал две службы http, которые вызывают две разные конечные точки.
import { Component, OnInit } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { Dog } from '../dog'
import { DogService } from '../dog.service'
import { DogpagesService } from '../dogpages.service'
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/mergeMap';
import 'rxjs/add/operator/switch';
@Component({
selector: 'app-girls',
templateUrl: './girls.component.html',
styleUrls: ['./girls.component.css']
})
export class GirlsComponent implements OnInit {
dogs: Observable<Dog[]>;
constructor(
private dogService: DogService,
private dogpagesService: DogpagesService,
) {
}
ngOnInit() {
this.dogpagesService.getPage('girls')
.map(res =>
res.map((val) => {
console.log(val)
return val.DogsId
}))
.subscribe(obsNumbers => obsNumbers
.map(num => this.dogService
.getDog(num)
.subscribe(dog => console.log(dog)
)));
}
}
В консоль записывается следующее:
{dogsId: 159, pageName: "Girls", sortId: 2}
{dogsId: 11, pageName: "Girls", sortId: 1}
GET https://localhost:44342/api/dogs/undefined 400
HttpErrorResponse {headers: HttpHeaders, status: 400, statusText: "OK", url: "https://localhost:44342/api/dogs/undefined", ok: false, …}
Почему dogID доступен во время console.log (val), но НЕ когда я подпишусь на него позже?
Спасибо.