为什么我得不到价值

时间:2017-11-22 13:33:07

标签: angular typescript ionic-framework ionic3

我正在研究Angular4。我有一些我不明白的东西。 我在服务提供商上存储一个值,然后从组件中获取它。 这是我的代码:

gard服务提供商:

npm install firebase-functions@latest --save
npm install -g firebase-tools

当我尝试key:any; constructor(){} storeKeysAppPreferences(res){ this.appPreferences.clearAll(); console.log("storeKeysAppPreferences",res); this.appPreferences.store('key1',JSON.stringify(res)); } fetchKeysAppPreferences(){ this.appPreferences.fetch("key1").then( (res) => { this.key=(JSON.parse(res)); } ); }

console.log()

key的值未定义。那是为什么?

2 个答案:

答案 0 :(得分:1)

由于它是异步操作,您需要执行以下操作:

注意:此处仅显示概念。请根据您的使用情况安排方法。

constructor(){}
    storeKeysAppPreferences(res){
            this.appPreferences.clearAll();
            console.log("storeKeysAppPreferences",res);
            this.appPreferences.store('key1',JSON.stringify(res)).then(()=>{//here is the place
                  fetchKeysAppPreferences(){
                      this.appPreferences.fetch("key1").then(
                         (res) => {
                            this.key=(JSON.parse(res));
                          }
                      );
                    }
                    })
          }

答案 1 :(得分:0)

你必须将console.log(this.key); // undefined置于回调中,确实在响应准备好之前执行第二个console.log()。