Внутри одного распознавателя мне нужно получить пользовательские данные. Сначала мне нужно проверить, имеет ли его профиль «Продажи», если да, используя возвращенное имя пользователя, я должен получить данные salesPerson из другого метода http get или же вернуть некоторые данные, которые я могу проверить, если они пустые.
У меня есть 2 разных метода:
userInfo(): Observable<User> {
return this.httpClient.get('/endpoint/api/auth/me')
.pipe(
map(result => result['user'])
)
} // in this observable there is the username and profile inside.
getSalesPerson(username) {
return this.httpClient.get<ISalesRep>(`${this.BASE_URL}/getVendedor?user=${usuario}`);
} // is this observer there is salesPerson data with SalesPersonId
Наблюдатели обоих различны. Первый вопрос:
при разрешении метода resolver, какой тип должен использоваться? Первый использует интерфейс IUSer, а второй использует интерфейс ISalesRep.
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):
Observable<????> | Promise<????> | ??? { ... }
Второй вопрос:
Как можно сделать возврат?
return this.loginService.userInfo()
.pipe (
???someMethod???((user) => {
if ( user.profile == 'Sales' ) {
return this.otherService.getSalesPerson(user.username)
.subscribe((data) => { take the SalesPerson Observable }
} else {
return empty observable or some I can check if is empty;
}
})
)
.subscribe();
Я аппетитно, кто-то может помочь
Заранее спасибо