Я просто изучаю Javascript и все еще довольно новый для облачного кода Parse. Я читал некоторые статьи и вопросы о обещаниях и закрытиях и до сих пор не совсем понимаю, как выполнить то, что я хочу делать. Все остальные вопросы/ответы кажутся немного разными или трудными для понимания.Javascript обещает прикованный внутри Loop
У меня есть функция, которая начинается с запроса, который получает все «Спортивные залы». Для каждого из этих спортзалов мне нужно запустить несколько других запросов. Все эти внутренние запросы (внутри цикла) должны быть заполнены до того, как я смогу создать окончательный отчет для тренажерного зала. Я хочу понять следующие вещи:
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