私はJavascriptを学んでいるだけで、Parseのクラウドコードにはまだかなり新しいです。私は約束や閉鎖に関するいくつかの記事や質問を読んできましたが、まだやりたいことを達成する方法をまだ理解していません。他のすべての質問/答えは少し異なっているか、または理解するのが難しいようです。Javascriptはループ内で連鎖することを約束します
私はすべての「ジム」を取得するクエリから始まる関数を持っています。それらのジムのそれぞれについて、私はいくつかの他のクエリを実行する必要があります。ジムの最終的なレポートを生成するには、それらの内部クエリ(ループ内)をすべて完了する必要があります。私は以下のことを理解したいと思います:
a。)ループの各反復がその繰り返しのクエリのチェーン全体を通してアクセスできるようにする方法。
b。)チェーン内の以前に実行されたクエリの結果はすべて、次のクエリで利用できるようになりますか?例えば最後の関数でnewWorkoutsにアクセスできますか?
function createReports() {
var gymQuery = new Parse.Query(Parse.Object.extend("Gym"));
gymQuery.find({
success: function(results) {
for (var i = 0; i < results.length; ++i) {
/* jshint loopfunc: true */
var gym = results[i];
var newWorkoutsQuery = new Parse.Query(Parse.Object.extend("Workout"));
newWorkoutsQuery.equals("gym", gym);
newWorkoutsQuery.find().then(function(newWorkouts) {
var newLogsQuery = new Parse.Query(Parse.Object.extend("WorkoutLog"));
newLogsQuery.equals("gym", gym);
return newLogsQuery.find();
}).then(function(logsLastWeek) {
//Generate final report for gym using data from all above queries.
//Need access to gym, newWorkouts, and logsLastWeek
});
}
},
error:function() {
console.log("error");
}
});
}
これはすごい男に見えます。私は今夜試してみるつもりだが、後でそれを受け入れる/コメントする。それに答える時間をとってくれてありがとう! – NickDK