Я просто добавил плагин для хранения в моем приложении с ионным 3 (с угловым 5). Документация довольно проста... по крайней мере, то, что я думал.
По какой-то причине я могу прекрасно хранить значение (также видимое в инструментах отладки), но я не могу его прочитать...
Мой код:
import {Injectable} from '@angular/core';
import {Storage} from '@ionic/storage';
@Injectable()
export class LocalStorageService {
constructor(private storage: Storage) {}
setItem(key: string, value: string | Object | number): Promise<void> {
return this.storage.set(key, JSON.stringify(value));
}
getItem(key: string): Promise<string> {
return this.storage.get(key)
.then((value: any) => {
console.log('---------------------------------------');
console.log(value);
return value;
});
}
removeItem(key: string): Promise<void> {
return this.storage.remove(key);
}
clear(): Promise<void> {
return this.storage.clear();
}
}
Мой модуль:
NgModule({
declarations: [
...
],
imports: [
...
IonicStorageModule.forRoot(),
...
],
exports: [
...
]
export class GlobalModule {
}
Поэтому я понятия не имею, что я делаю неправильно...? Может быть, это побочный эффект, потому что я не знаю, имеет ли это значение. Я уже использую плагин SQLite от ионного, и он отлично работает. Итак, теперь я пытаюсь добавить localstorage для хранения простых datapairs...
Заранее спасибо за помощь.
С уважением
getItem(key: string): Promise<string>
возвращает обещание, но вы уже вызываете .then()
на нем внутри метода. return
не работает в .then()
потому что это асинхронный метод в синхронном режиме. Либо верните обещание без .then()
, либо ничего не возвращайте и не делайте что-то с помощью .then()
в этом методе.
then()
, использовать возвращаемое значение, выполнив then()
т. this.getItem(auth).then((tokenValue) => { ...})
, например, здесь он будет делать что-то вроде: this.getItem(auth).then((tokenValue) => { ...})
console.log(value)
вgetItem()
пустым?