我試圖將可觀察列表組合起來,但沒有使用zip或其他地圖的運氣。RxJs創建一個Observable列表,然後合併(Firebase)
我想要做的是獲得給定藝術家ID的流派列表。我使用的是firebase,所以它是一個nosql數據庫。我有一個'genresPerArtist'列表,它是一個Artist鍵列表,每個Artist鍵都有一個Genre鍵列表。 結構:
{
genresPerArtist: {
artist1: {
genre1: true,
genre2: true,
genre3: true
}
},
genres: {
genre1: {
name: 'Alternative'
},
genre2: {
name: 'Jazz'
}
}
}
下面是我有功能的啓動:
getGenresByArtistId(artistId: string): Observable<any> {
return this.db.list(`/genresPerArtist/${artistId}`)
.flatMap((genres: IDictionary[]) => {
return genres.map(genre => this.db.list(`/genres/${genre.$key}`));
// return Observable.zip(obvs);
});
我真的不知道什麼做的,我得到genresPerArtist回來就行。我想要做的是採取每個genre.key(genre1,genre2,genre3),並使用每個從'流派'中獲取值。我想我可以返回一個.zip,然後映射,但我沒有得到zip的迴應。
「genre」的值是否意味着與流派密鑰關聯的整個對象?你能指定方法的返回類型嗎? (Observable ist helpful) –
是的,我想我會得到與流派關鍵相關的整個對象。我最終會從那裏獲得'name'屬性。 – mrshickadance
幾個元素應該是數組,你將它們全部顯示爲對象 – Skeptor