[英]Angular 2 typescript call a void method wait for that method executing to complete before executing next step
我們需要在Typescript中調用返回類型為void的方法,但是在void方法執行完成之前,類型腳本不應繼續下一行代碼。 我們如何實現這一目標。
在下面的示例中,我們必須從closeWindow調用saveEventDetails,但是在關閉的窗口中var win = window.open(“ about:blank”,“ _self”); win.close(); 在saveEventDetails方法執行完成之前不應執行。
EX: -
saveEventDetails(buttonClick: string = "") {
this.eventForm.markAsUntouched(false);
this.eventForm.value.claimNumber = this.appContext.claimNumber;
this.eventsService.patch(this.eventForm.value).subscribe(res => {
this.loadUserTrackingDetails();
this.userTrackingService.saveUserTrackingDetails(this.userTrackingModel).subscribe(r => {
if (buttonClick == "") {
this.showSuccess();
}
return Observable.of();
});
}, (errResp: any) => {
this.errorMessage = "Unable to load EVENT, invalid user or claim number";
return Observable.of();
});
}
closeWindow() {
this.eventForm.value.cmResidentStateLicensed = false;
Observable.create((observer: Observer<any>) => {
this.saveEventDetails("popup")
var v = true;
})
.subscribe(data => {
var win = window.open("about:blank", "_self");
win.close();
},
(errResp: any) => {
this.errorMessage = "Unable to Save EVENT, Please try after soemtime";
});
}
為什么不訂閱saveEventDetails()返回的Observable呢?
closeWindow() {
this.eventForm.value.cmResidentStateLicensed = false;
this.saveEventDetails("popup").subscribe(data => {
var v = true;
var win = window.open("about:blank", "_self");
win.close();
},
(errResp: any) => {
this.errorMessage = "Unable to Save EVENT, Please try after soemtime";
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.