簡體   English   中英

Angular 2打字稿調用void方法,等待該方法執行完成,然后再執行下一步

[英]Angular 2 typescript call a void method wait for that method executing to complete before executing next step

我們需要在T​​ypescript中調用返回類型為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM