私はJavaScriptを備えたFirebaseを初めて使いました。私は、取得したデータの出力で約束を返すことができます。しかし、私は本当に、次の場合にはそれを見抜くことはできません。このような場合に約束を返すには?
filterUsersAndCalculateMatches = (userProfile, userID, potentialMatches, maxDistanceToSearchForMatches) => {
const TOTAL_SCORE = 100;
var matches = {}; // Matches to be stored in the database
potentialMatches.forEach(user => {
if (user.val() !== userID) {
databaseRef.child(`users/${user.val()}/profile`).once("value", (snapshot) => {
const matchScore = calculateMatchScore(userProfile, snapshot.val(), maxDistanceToSearchForMatches);
//console.log("final score is " + matchScore);
if (matchScore) {
const match = {
compatibility: matchScore/TOTAL_SCORE,
distance: distance,
profile: snapshot.val()
}
matches[user.val()] = match;
}
});
}
});
};
私は、ユーザーのIDのを反復処理し、いくつかの計算を行うと、オブジェクトへの自分のプロファイルと一緒に結果を追加して自分のプロファイルにアクセスしています。
すべてのユーザーが終了した後、約束オブジェクトを返す方法はありますか?
を処理していませんでした注意あなたが達成しようとしていると何をしようとしたものに多くのコンテキストを与えることができます。 –