私はJavaScriptの約束事に問題がありました。だから、私がやっていることは、firebaseから取り出して、返されたすべての結果を配列に格納したいということです。その後、配列のソートを行います。ここに私のコードは次のとおりです。JavaScriptの約束が解決しなかった
let promise = new Promise((resolve, reject) => {
var query = firebase.database().ref('');
query.once('value', data => {
data.forEach(subtypeSnapshot => {
var itemData = ;
var query = firebase.database().ref('').child(itemKey);
query.once('value', data => {
var itemDetail = ;
datasetarr.push();
});
});
resolve(datasetarr);
});
});
コードのこのセットでは、約束内の最初のconsole.log
から、私は私のコンソールでこれらを得ることができた。これらにより
、それは私は何も問題がないことを意味しますfirebase retrieval。 Afterwhichは、私は、配列にそれらのそれぞれを保存したい、これは一部です:
すべてを行い、約束が行われたときに、私は、約束を解決datasetarr.push({type: subtype, quantity: quantity});
した後、私は、配列内の項目をプリントアウト。しかし、.then()
の中のforループで何も出力されません。何か案は?
'解決(datasetarr);' '任意datasetarr.push({タイプ数量:サブタイプ、数量})の前に呼び出され、'実行され、なぜなら非同期コードは非同期です –