我刚刚在ionic 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 {
}
所以我不知道我在做什么错...? 也许是一个旁注,因为我不知道它是否相关。 我已经使用了ionic的SQLite插件,并且效果很好。所以现在我正在尝试添加本地存储来存储简单的数据对...
预先感谢您的帮助。
亲切的问候
答案 0 :(得分:1)
getItem(key: string): Promise<string>
返回一个Promise,但是您已经在方法中对其调用.then()
。 return
在.then()
中不起作用,因为它是同步方法中的一种异步方法。在没有.then()
的情况下返回诺言,或者在该方法中不返回任何内容并使用.then()
进行操作。