Używam kątowego 4 i próbuję uzyskać dane z 2 punktów końcowych, ale mam problem ze zrozumieniem rxjs.Angular 4 łączy dane z wielu żądań HTTP
przy pomocy tego kodu mogę uzyskać tylko listę studentów i użytkowników.
getStudent() {
return this.http.get(this.url + this.student_url, this.getHeaders()).map(res => res.json());
}
getUsers() {
return this.http.get(this.url + this.users_url, this.getHeaders()).map(res => res.json());
}
Powiedzmy to dane: Student
[{"ID" : 1 , "SchoolCode": "A150", "UserID": 1 },
{"ID" : 5 , "SchoolCode": "A140" , "UserID": 3},
{"ID" : 9 , "SchoolCode": "C140" , "UserID": 4}]
użytkownika
[{"ID" : 1 ,"Name": "Rick" , "FamilyName" , "Grimes" },
{"ID" : 4 ,"Name": "Carle" , "FamilyName" , "Grimes" }]
Chcę dostać pierwsze wszyscy studenci następnie porównać identyfikator użytkownika, jeśli jest taka sama, jak użytkownik następnie łączę oba obiekty w jeden, dopóki nie otrzymam tablicy w następujący sposób:
{"ID" : 1 , "SchoolCode": "A150","Name": "Rick" , "FamilyName" , "Grimes" }
Myślę, że powinienem użyć płaskiego planu, ale spróbowałem napisać kod, ale to nie działa dla mnie i nie znalazłem przykładu z taką logiką.
Czy możesz mi pomóc.
flatmap pozwala na zmianę strumieni, na przykład możesz poprosić o uczniów, a następnie uzyskać listę kursów dla konkretnego ucznia, która byłaby dobrym rozwiązaniem n; w tym przypadku zawsze potrzebujesz obu list, a następnie możesz zrobić trochę logiki, więc możesz potrzebować forkjoin, scalić lub połączyć, aby to zrobić – David