我试图检查本地存储的数据是否存在,并相应地显示/隐藏部分视图。我这样做,通过分配真假formMarkersDisplay像这样:TypeScript Promise函数问题
ionViewWillEnter() {
this.formMarkersDisplay = this.dataService.isNearMiss(this.appGlobal.getReportPrimaryKey());
}
这里是isNearMiss功能:
isNearMiss(pk) {
let sectionSevenObj : any;
this.getReport(pk).then((report) => {
if (report) {
sectionSevenObj = JSON.parse(report);
sectionSevenObj = sectionSevenObj.report.sections.section7;
if(Object.keys(sectionSevenObj).length != 0) {
this.is_markers = true;
} else {
this.is_markers = false;
}
}
});
return this.is_markers;
}
这里是getReport:
getReport(pk) {
return this.storage.get(pk);
}
的问题是,这.is_markers被设置为false,即使当我期待true时(显示在console.log中)。我一直在努力让自己的头脑与Promises合作。我认为这可能与此有关。
如何修改我的代码以使其工作?
您需要返回的承诺,不是变量发生变异 –
有很多你的代码其它问题以及。例如,这一行的类型注释不仅毫无意义,而且实际上可以防止TypeScript捕捉错误'let sectionSevenObj:any;'。它看起来像你需要刷新你的JavaScript基础,因为你正在做的奇怪的事情,例如从同一对象上的方法返回绑定到'this'的值 –
我对JS/TS很新颖。我如何去回复承诺?我正在寻找我的代码的实际修订的一些例子,以指向正确的方向。 – Muhammad