我試圖檢查本地存儲的數據是否存在,並相應地顯示/隱藏部分視圖。我這樣做,通過分配真假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