Вы должны понимать, что метод Storage
get()
является асинхронным, что означает, что он возвращает Promise, а не значение напрямую. Вот почему вам нужно связать метод .then()
, верно?
Когда вы связываете .then(...)
, вы передаете ему функцию в качестве параметра:
this.storage.get('values').then((value) => { ... });
// ^ ^
// | |
// --------------------> This is a function
Эта функция является обработчиком этого обещания. Когда вы возвращаете что-то из этого, оно просто преобразует вывод обещания. Но это return
НЕ будет выходить из этой функции.
Итак, ваша getValue()
функция также должна возвращать Promise:
getValue() {
return this.storage.get('value').then((val) => {
return val;
});
}
И где бы вы ни использовали его, вы должны рассматривать его как Обещание (цепочка .then()
, чтобы получить его значение):
this.myService.getValue().then((value) => { console.log(value); });