Ваш глобальный columns
может быть перезаписан предыдущим AJAX-запросом.
Попробуйте сделать его локальной переменной в обратном вызове и попробуйте добавить вызовы console.log
, чтобы убедиться, что порядок обратного вызова соответствуетожидайте.
Возможно, вам потребуется сохранить глобальный счетчик запросов, чтобы гарантировать, что вы не обработаете ответ после отправки нового запроса.
Например:
var lastRequest = 0; //You may want to put this in a namespace or closure
...
var thisRequest = ++lastRequest;
$.ajax({
type: "POST",
url: "/sandbox/graphloader/mock3",
async: false,
data: {calInput1:dates[0], calInput2:dates[1]},
success: function(data){
if (thisRequest !== lastRequest) return;
...
}});
Не делайте этого внутри тела цикла, иначе вы будете использовать переменную thisRequest
.
Вместо этого вызовите функцию из тела цикла.