我必须等待几种可观察的方法完成,我想为此使用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?有什么方法可以等待完成的几种方法吗?
答案 0 :(得分:1)
您可以将loadUserRole
简化为此,如果您的loadUserRoles
中没有复杂的事情,那么确实不需要创建新的Observable。
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
});