实际上我需要等到来自打字稿的webapi调用的响应。代码如下:
if (this.parcelId) {
if (this.getAssetLocationMappedParcels(this.parcelId)) {
this.showConfirmModal = true;
this.modalContent = this.translation.translate('property-tax/mapped-asset-location-warning-message',
{ 'parcelName': this.currentEntity.name });
} else {
this.updateParcel();
}
}
private getAssetLocationMappedParcels(parcelId: number): boolean {
let hasMappedRecord: boolean = false;
this.counter++;
this.mappedAssetLocationSub = this.apiService.fetchAll(`assetlocationtaxlocationtaxparcel/${parcelId}/parcel`)
.finally(
() => this.counter--
)
.subscribe(options => {
hasMappedRecord = (options.count > 0);
},
err => {
this.handleError(err || err.message);
}
);
return hasMappedRecord;
}
所以我的问题是条件 if(getAssetLocationMappedParcels(id))被传递并在之后的else条件下执行,该方法返回值为true / false; 为此,我需要等到该方法返回响应。 任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:0)
这是一个异步世界,所以你必须使用这个“约束”。
我认为除了订阅之外还有其他解决方案:
this.getAssetLocationMappedParcels(this.parcelId)
.subscribe(isLoaded => {
if (isLoaded) {
this.showConfirmModal = true;
this.modalContent = this.translation
.translate(
'property-tax/mapped-asset-location-warning-message',
{'parcelName': this.currentEntity.name}
);
} else
this.updateParcel();
})