值始终从本地存储返回空值(离子3 +角度5)

时间:2018-07-12 09:33:42

标签: javascript angular ionic3 local-storage storage

我刚刚在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插件,并且效果很好。所以现在我正在尝试添加本地存储来存储简单的数据对...

预先感谢您的帮助。

亲切的问候

1 个答案:

答案 0 :(得分:1)

getItem(key: string): Promise<string>返回一个Promise,但是您已经在方法中对其调用.then()return.then()中不起作用,因为它是同步方法中的一种异步方法。在没有.then()的情况下返回诺言,或者在该方法中不返回任何内容并使用.then()进行操作。