如何等待所有订阅事件完成并返回值?

时间:2019-05-02 19:29:14

标签: javascript angular typescript observable

我需要从订阅事件中返回一个值,该事件包含按顺序排列的多个订阅事件。我将其设置为这种方式,因为一个事件取决于父订阅。

我的问题是我在“可观察到的函数”下收到错误消息,该函数的声明类型既不是'void'也不是'any'都必须返回值。

我需要将最终结果发送回去,这样我才能观察到。

ProcessSave(form:any, strProfile:string):Observable<string> {          
        let entity : number;         
       this._userProfileService.GetEntity(form.screenId, form.selectedTabId, form.gridListId).subscribe(data =>{
         entity = data;
          this._userProfileService.SaveUserProfiles(strProfile, form.selectedProfileId, form.selectedProfile, form.isDefault ).subscribe(profile =>{            
            const selListItems :string[] = [];               
            this.profileGroup = this.GetUserProfile(strProfile, entity, form.selectedProfileId, form.selectedProfile, selListItems, form.isDefault);
            return Observable.of(this._userProfileService.SaveUserProfilesColumns(this.profileGroup).pipe(user =>{
              const msg = user; 
              return msg;       <-- I need to return this value.                        
            }))
          })
        })      
      }

我用

称呼它
var msg = this.ProcessSave(this.form, this.button);
   if(msg){

     //Process more stuff here
    }

我需要等待消息返回,并且需要在订阅事件之外进行额外的处理

0 个答案:

没有答案