我正在使用角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