如何使用forkJoin等待所有可观察方法的完成



我必须等待完成几个可观察的方法,我想使用forkJoin。 例:

forkJoin(
this.loadUserRoles(),
this.loadDepartments()
).subscribe(result => { 
//some logic
});
loadUserRoles() {
return new Observable(obs => { this.userService.getRoles().subscribe(
resp => this.loadUserRolesSuccess(resp),
this.loadUserRolesError);
});
}

LoadDepartments 方法看起来像 LoadUserRoles。 我尝试使用obs.next()但它不起作用。可以这样使用forkJoin吗?有没有办法等待完成几种方法?

您可以简化对此loadUserRole,如果您的loadUserRoles中没有复杂的东西,则实际上不需要创建新的可观察对象

loadUserRoles() {
return this.userService.getRoles().pipe(
map(res=>this.loadUserRolesSuccess(res))
,catchError(e=>this.loadUserRolesError(e)))
}
forkJoin(
this.loadUserRoles(),
this.loadDepartments()
).subscribe(([result1,result2]) => { 
//some logic
});

最新更新