我正在研究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的值未定义。那是为什么?
答案 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()。