0
私はこのコード初めてクエリを実行すると、結果が異なるのはなぜですか?
results = []
const result = this.dbRef.database.list(`/answers/${questionId}`)
.do((array) => { console.log(JSON.stringify(array));})
.map((array) => array.reduce((acc, element) =>
acc + element.$value, 0)
)
.subscribe(sum => this.results.push(sum));
とfirebaseを照会するとき観察することによって放出される配列は、例えば
[{"$value":3,"$key":"fitges1"},{"$value":3,"$key":"fitges2"},{"$value":3,"$key":"fitges3"}]
であり、予想されるように値9をresults
にプッシュされます。
しかし、このコードを再度実行すると、返された配列は空になり、最後にオブジェクトがいっぱいになるので、最後にresults
が9,0,3,6,9
を保持します。
ここで何が起こっているのですか?初めてthis.dbRef.database.list(/answers/${questionId})
が何か異なる結果をもたらすのはなぜですか?私はsum
後に退会を呼び出そうとしました
は、アレイにプッシュされているはずですが、その後何も全く起こっていないので、results
は空にとどまりました。