Как использовать forkJoin, чтобы дождаться завершения всех наблюдаемых методов - PullRequest
0 голосов
/ 11 октября 2018

Мне нужно дождаться завершения нескольких наблюдаемых методов, я бы хотел использовать для этого 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 таким образом?Есть ли способ дождаться завершения нескольких методов?

1 Ответ

0 голосов
/ 11 октября 2018

Вы можете упростить свой loadUserRole до этого, на самом деле нет необходимости создавать новый Observable, если в вашем 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
 });
не происходит никаких сложных вещей.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...