Свойство объекта возвращает неопределенное значение, используя наблюдаемый .map - PullRequest
0 голосов
/ 26 сентября 2018

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), но НЕ когда я подпишусь на него позже?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...