我正在使用角4,我试图从2个端点获取数据,但我对rxjs有一个理解问题。角4结合来自多个HTTP请求的数据
使用此代码我只能获取学生和用户列表。
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());
}
比方说,这是数据: 学生
[{"ID" : 1 , "SchoolCode": "A150", "UserID": 1 },
{"ID" : 5 , "SchoolCode": "A140" , "UserID": 3},
{"ID" : 9 , "SchoolCode": "C140" , "UserID": 4}]
用户
[{"ID" : 1 ,"Name": "Rick" , "FamilyName" , "Grimes" },
{"ID" : 4 ,"Name": "Carle" , "FamilyName" , "Grimes" }]
我想首先是学生,然后比较用户名,如果是一样的用户然后我结合了对象合并为一个,直到我得到这样一个数组:
{"ID" : 1 , "SchoolCode": "A150","Name": "Rick" , "FamilyName" , "Grimes" }
我想我应该使用flatmap,但我确实尝试写代码,但它对我没有用,我没有找到这样的逻辑例子。
你能帮我吗。
flatmap允许您更改流,例如,您可以要求学生,然后获得特定学生的课程列表,这将是一个很好的选择N;在这种情况下,你总是需要两个列表,然后你可以做一些逻辑,所以你可能需要forkjoin,merge或combine来做 – David