Angular 5中的Asynchrounous呼叫问题

时间:2018-04-05 09:15:53

标签: angular5

我正在使用Angular5,我有一个大问题(请参阅下面的代码)
简单来说,这是一个异步执行问题,如何减少这个

 let confirmData = {
            dlgHeader: 'Add',
            msgTxt: 'Are you sure to Add Language!!',
            eventName: 'locationmanagement_languages_assign'
        };
        this.confirmService.confirmData = confirmData;
   (1)   this.confirmationService.setShowConfirm(true);
   (2)    this.confirmAnchor.createConfirmation(ConfirmationComponent);
this.confirmService.getReturnValue()
        .subscribe(
        suc => {
            if (suc.eventName == 'locationmanagement_languages_assign') {
            this.assignLanguage(suc);
            }
        });

在上面(1)代码行负责创建确认。(我已经创建了自定义确认组件) 内部自定义确认用户可以单击确认/取消按钮。 我想停止(2)行代码执行,直到用户单击自定义确认组件中的CONFIRM / CANCEL按钮。   现在我在language.component.ts中使用如下,但我在ngOnInit()中调用getReturnValue()。   我不想使用ngOnInit()从自定义确认组件获取操作,或者是CONFIRM / CANCEL操作

ngOnInit() {
        this.getReturnValueEvent();
    }


 assignLanguageEvent() {
        debugger;
        this.requestedData = [];
        for (let data of this.selectedAssignLanguages) {
            this.requestedData.push({
                id: data.value.id,
                set_value: data.value.setValue
            });
        }
        console.log('Requested Data::', this.requestedData);
        let confirmData = {
            dlgHeader: 'Add',
            msgTxt: 'Are you sure to Add Language!!',
            eventName: 'locationmanagement_languages_assign'    
        };
        this.confirmService.confirmData = confirmData;
        this.confirmationService.setShowConfirm(true);
        this.confirmAnchor.createConfirmation(ConfirmationComponent);
    }

    getReturnValueEvent() {
       this.subscription1 = this.confirmService.getReturnValue()
        .subscribe(
        suc => {
            if (suc.eventName == 'locationmanagement_languages_assign') {
            this.assignLanguage(suc);
            }
        }
        );
    }

0 个答案:

没有答案