我已经使用构造函数代码创建了一个提供程序:
constructor(private storage: Storage) {
this.datas = null;
this.getUserinfoDB()
.then(
data => {
this.uid = data['id'];
console.log("UID FROM PROVIDER "+this.uid);
}
);
}
我刚把它导入另一个ts文件: 像:
constructor(public crudStorageProvider: CrudStorageProvider) {
console.log("UID: " + crudStorageProvider.uid);
}
这个导入和所有的一切都很好:
但是console.log("UID: " + crudStorageProvider.uid);
我在这里得到了未定义。
我的控制台订单是:
UID: undefined
UID FROM PROVIDER: 6
谢谢,
答案 0 :(得分:2)
从输出序列,很明显数据是在html {
background-color: #fff;
}
body {
margin: 50px;
background-color: #00ff00;
height: 200px;
border: 1px solid;
}
之后设置的。
这是承诺异步性质的正常结果。
你的console.log("UID: " + crudStorageProvider.uid);
应该有一个功能,如下所示:
CrudStorageProvider
然后致电
getUID(){
if(this.uid){
return Promise.resolve(this.uid);
}else{
return this.getUserinfoDB()
.then(
data => {
this.uid = data['id'];
console.log("UID FROM PROVIDER "+this.uid);
return this.uid;
}
);
}
}