Компонент Angular / Ionic Service не читает данные из сервиса

У меня есть служба, которая читает некоторые данные, и мне нужно передать их компоненту.

Итак, я делаю это:

// Service
  loadData() {
    this.nativeStorage.getItem('data').then
       ((data) => {  
        return data;
       }), 
       error => {
         console.log(error);
       };
  }

// in component
dat; //define dat variable

load() {
    this.dat = this.myservice.loadData();
    alert(this.dat);
}

Это возвращение недооценено.

Как я могу исправить это, поскольку я знаю, что данные существуют.

Всего 1 ответ


Поскольку вы возвращаете данные в функцию стрелки, а не в функцию loadData , вы всегда получите неопределенное значение, поэтому попробуйте следующий фрагмент:

// Service
  async loadData() {
    const result = await this.nativeStorage.getItem('data');
    return result;
  }

// in component
dat; //define dat variable

load() {
    this.dat = this.myservice.loadData();
    alert(this.dat);
}

или же

// Service
  loadData() {
   return this.nativeStorage.getItem('data')
                 .then(res => { return res; })
                 .catch(err => throw err);
  }

// in component
dat; //define dat variable

async load() {
    this.dat = await this.myservice.loadData();
    alert(this.dat);
}