В моем приложении Angular 2 у меня есть бэкэнд-сервис, как показано ниже.Угловой 2: Два вызова бэкэнда на успех первого сервиса
После вызова этой службы я хочу позвонить еще одной службе по успешной предыдущей.
второй сервис
let params: URLSearchParams = new URLSearchParams();
params.set('access_token', localStorage.getItem('access_token'));
return this.http.get('http://localhost:8080/user/selections', { search: params }).map((res: Response) => res.json());
Эти две услуги отдельно вернуть два JSON Массивы. Затем мне нужно сделать логин с этими двумя массивами.
РЕДАКЦИИ
service.ts
getUserInterests() {
return this.http.get('http://localhost:8080/test/selections').map((res: Response) => res.json());
}
getSavedSelections() {
let params: URLSearchParams = new URLSearchParams();
params.set('access_token', localStorage.getItem('access_token'));
return this.http.get('http://localhost:8080/interest/user/selections', { search: params }).map((res: Response) => res.json());
}
getSelectionList() {
var obs = this.getUserInterests().flatMap(
(interests) => {
return Observable.forkJoin([
Observable.of(interests),
this.getSavedSelections()
]);
}
);
return obs;
}
Тогда я использую следующий в моем другом TS файла для вызова службы.
export class InterestsComponent {
private interests;
private saved_interests;
constructor(private dataService: DataService) {
this.dataService.getSelectionList().subscribe(
(result) => {
var interests = result[0];
var selections = result[1];
}
);
}
}
Но это дает следующую ошибку в журнале консоли.
ORIGINAL EXCEPTION: TypeError: this.dataService.getSelectionList is not a function
Любые предложения приветствуются.
Что такое интересы? – Rose18
Как я могу получить ответы на две службы? – Rose18
'интересы' соответствует результату первого запроса. –