AngularFire観測可能リストに対して、どのように正しく反復処理しますか? 私は、各応答は、すべてのリストのメンバープラス(「ピラミッド」のような)新しいものを返すようデータを処理するかどうかはわかりません -AngularFire観測リストを反復処理する方法は?
first response: [{obj1}]
second response: [{obj1}, {obj2}]
third response: [{obj1}, {obj2}, {obj3}]
私は、私のコードで2つのソリューションを実装してみましたそれらのどれも正しい道のように見えません。
最初の解決策はrxjsマップを使用しますが、毎回レスポンス全体を繰り返し処理するので、あまりにも重すぎます。 「学校に何かをする」(これschools
リストを反復処理)上記の例でschool2
までの時間をschool1
に再度、school1
に実行され、最初にすることを意味
getAllSchools(): Observable<any> {
return this.angularFire.database.list('schools').map((response) => {
return response.map(school => {
return \\do something to school\\
})
})
}
。その後、私が実装しようとしたschool1
からschool1
に三回、二回目school2
に、初めて、等
第2の解決策は、preserveSnapshot
を使用していました。ここで問題となるのは、データの各部分を1回だけ返すことが肯定的ではないということです。
getAllSchools(): Observable<ISchool> {
return new Observable(observer => {
this.angularFire.database.list('schools', { preserveSnapshot: true })
.subscribe(snap => {
snap.forEach((school) => {
///do things to school///
observer.next(school)
})
})
})
}
これは非常に基本的な質問です。解決方法は非常に単純です。それにもかかわらず、私は明確なカットソリューションを見つけることができませんでした。
oneのような別のライブラリを使用する必要がありますか?
ありがとうございました!
は、この問題のように聞こえる:https://github.com/angular/angularfire2/issues/574 – cartant