Я знаю, что этот вопрос задавали бесчисленное количество раз, но я не могу понять, как заставить этот ответ работать в моем случае: дождаться, пока асинхронная функция JavaScript вернет
Я перебираю некоторые «телеканалы» во внешней петле, а затем перебираю даты на неделе во внутренней петле.Во внутреннем цикле я делаю ajax-запрос к серверу для извлечения данных, а затем сохраняю / кеширую его для последующего использования, вот так
var dates = []; //<-- Contains a list of dates for the coming week
var baseUrl = "http://www.someserver.com";
var storedChannels = [1,2,3,4,5,6,7,8,9,10,45,23,56,34,23,67,23,567,234,67,345,465,67,34];
for(ch = 0; ch < storedChannels.length; ch++) {
var channel = storedChannels[ch];
for(d=0; d < 7; d++) {
var currentDate = dates[d];
ajax({
url: baseUrl+"?ch="+channel+"&dt=currentDate"+,
complete: function(res) {
CMLocalStore.setString('ch' + ch + "_" + scheduleDay, res);
},
});
//Want to wait here till the ajax request completes.
//Do not want to continue to next iteration.
//Do not want to fire of 50 bazillion ajax requests all at once
//Why? Very limited bandwidth scenario, plenty of channels
}
}
PS: НЕТ JQuery, пожалуйста!Только простые решения JS
Большое спасибо!