У меня есть некоторые значения, которые сохраняются в хранилище sqlite, когда пользователь входит в систему, и мне нужно, чтобы эти значения были доступны во всем приложении.
Я создал сервис для извлечения и хранения этих значений, но он не работает, потому что единственный способ, которым я смог выяснить, как это сделать, это получить значения в обещании, чего я не делаю думаю вернет их за пределы then()
.
value1: string;
value2: string;
constructor(
private storage: Storage,
) {
Promise.all([
this.storage.get('value1'),
this.storage.get('value2'),
]).then((result) => {
this.value1 = result[0];
this.value2 = result[1];
});
}
Как я могу получить эти значения в моем сервисе, а затем вызвать их на своих страницах следующим образом?
this.value1 = this.myService.value1;
Редактировать: Согласно ответу Сергея Руденко, я создал GlobalService и вызвал код со страницы. Вот код, который я использовал.
GlobalService
import { Injectable } from '@angular/core';
import { Storage } from '@ionic/storage';
@Injectable({
providedIn: 'root'
})
export class GlobalService {
public value1: string;
constructor(private storage: Storage) {
this.storage.get('value1').then((value) => {
this.value1 = value;
});
}
}
MyPage
import { Component, OnInit } from '@angular/core';
import { GlobalService } from '../../services/global.service';
@Component({
selector: 'app-index',
templateUrl: './index.page.html',
styleUrls: ['./index.page.scss'],
})
export class IndexPage implements OnInit {
public value1: string;
constructor(private global: GlobalService) {
console.log('value1=' + this.global.value1);
// returns: value1=undefined
}