Angular — я получил ‘undefined’ в качестве вывода объекта массива, пока у меня есть данные в моем объекте массива

#arrays #angular #api #object

#массивы #angular #API #объект

Вопрос:

у меня есть API, ответ которого приведен ниже на скриншоте. Я хочу получить данные моего объекта массива и отобразить их на веб-странице. Но я получил undefined в качестве вывода, пока у меня есть данные в моем объекте массива. Пожалуйста, скажите мне, где я делаю неправильно.

код служб:

 testfxn(){
  return(
    this.apiCallService.GET(`${this.myService.myendpoint.xyz}`)
    .pipe(
      map((testData)=>{
        let testresp=testData.response[4];
        return testresp;
      })
    )
  );
}
  

component.ts:

     testing(){
        this.reportService.testfxn().subscribe((r)=>{
          this.resp=r
          console.log(this.resp)
        })
      }
  

Ответ №1:

 testing(){
    this.reportService.testfxn().subscribe((data) => {
      this.testingdate=data;
      console.log(this.testingdate);
    });
  }
  

testfxn() это асинхронная функция. Возможно, что ваш console.log будет выполнен до того, как функция вернет данные и будет использована subscribe()

Комментарии:

1. все тот же результат

2. я не могу console.log (testData) в моем файле service.ts. IDE не позволяет мне этого делать.

3. Подождите, у вас testData.userLogtime[0] нет bifurData объекта. Вы имели в виду data.date ?

4. дата является свойством моего объекта массива, имя объекта массива — userLogtime, как вы можете видеть на скриншоте

5. Да. Вы возвращаете 1-й объект из userLogtime массива из сервиса. В вашем компоненте вы пытаетесь получить доступ bifurData к тому, что не является свойством возвращаемого вами объекта.