Угловой 7: присвоение значения объекта, возвращаемого из наблюдаемого переменной - PullRequest
0 голосов
/ 13 февраля 2019

У меня проблема при попытке присвоить возвращаемое значение из службы компоненту.

  ngOnInit() {
    this.getInspectionData();
  }

  getInspectionData() {
    this.auctionService.getInspectionResult(`df570718-018a-47d8-97a2-f943a9786536`)
      .subscribe(data => {
        console.log(`this is data returned: `, data);
      }, error => {
        console.log('failed to get data', error);
      }, () => {
        console.log('getInspectionResult successfully processed');
      });
  }

Он успешно получил возвращаемое значение в console.log

console.log результат

внутри subscribe().Кажется, нет проблем.даже я установил переменную console.log внутри subscribe():

  .subscribe(data => {
    this.inspectionResult = data;
    console.log(`value from getInspectionData: `, this.inspectionResult);

это дало this.inspectionResult вывод правильно.

это должно быть правильно, верно?и затем я добавляю this.inspectionResult = data;

но ....

когда я проверяю это, переменная ошибается и получает '{}'.код ниже:

  ngOnInit() {
    this.getInspectionData();
    console.log(`value from getInspectionData: `, this.inspectionResult);
  }

  getInspectionData() {
    this.auctionService.getInspectionResult(`df570718-018a-47d8-97a2-f943a9786536`)
      .subscribe(data => {
        this.inspectionResult = data;
      }, error => {
        console.log('failed to get data', error);
      }, () => {
        console.log('getInspectionResult successfully processed');
      });
  }

это результат

кстати, я назначил переменную следующим образом:

  inspectionResult: InspectionResult = <InspectionResult>{};
  inspectionResultData: InspectionResultData = <InspectionResultData>{};

мой вопрос:

  1. Почему значение данных не присваивается this.inspectionResult?
  2. Почему ngOnInit () не дает ожидаемый способ вывода?(console.log() in ngOnInit() должен запускаться после getInspectionData();)

1 Ответ

0 голосов
/ 13 февраля 2019

, что может быть связано с

this.getInspectionData ();console.log (value from getInspectionData:, this.inspectionResult);

, в этом случае в this.getInspectionData () этот процесс может задержаться.но console.log () завершается до завершения вышеуказанного метода.

, вы должны дождаться завершения метода.Пожалуйста, сослаться на это, вы получите некоторую ясность

http://www.damirscorner.com/blog/posts/20170127-Angular2TutorialWithAsyncAndAwait.html

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