ローカルに保存されているデータが存在するかどうかを確認し、それに応じてビューの一部を表示/非表示しようとしています。私はそうのようformMarkersDisplayするにはtrueまたはfalseを割り当てることによって、この操作を行います。getReportTypeScript Promise機能の問題
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;
}
そしてここにある:
ここionViewWillEnter() {
this.formMarkersDisplay = this.dataService.isNearMiss(this.appGlobal.getReportPrimaryKey());
}
がisNearMiss機能である
getReport(pk) {
return this.storage.get(pk);
}
問題は、このことです.is_markersは、私がtrueを期待していてもfalseに設定されます(これはconsole.logに表示されます)。私は約束と一緒に働くことに頭を悩ましてきました。私はこれがそれに関連するかもしれないと思う。
このコードを変更するにはどうすればよいですか?
変更、いない変数は –
があなたのコード内の他の問題がある変異します同じように。たとえば、この行の型注釈は無意味であるだけでなく、実際にTypeScriptが間違いをキャッチすることを防ぐ 'let sectionSevenObj:any;'。同じオブジェクトのメソッドから 'this'にバインドされた値を返すなど、あなたが行っている変なことを考えると、JavaScriptの基礎をブラッシュアップする必要があるようです。 –
JS/TSの新機能です。約束を返すにはどうすればいいですか?私は自分のコードの実際のリビジョンを探して、正しい方向に向けるいくつかの例を探しています。 – Muhammad