0

Почему цикл начинает запускаться заново, когда код в нём ещё не выполнился до конца. В консоль выводиться "Start!", "End!" не выводиться. Если запустить код в цикле, без цикла всё работает нормально. В итоге в браузере "Start!" выводиться 4000+ раз и компьютер зависает. Как сделать чтоб while дождался пока выполниться $.get и потом уже заново начинал цикл?

while(newfile < count) {
 console.log("Start!")
 $.get("http://192.168.1.108/photos/" + addresa[nowfile], function(data) {
  console.log("End!")
  str = "data:image/jpg;base64," + data
  docInfo['content'][openw] = { image: str, alignment: 'center' };
  console.log("ban")
  openw = openw + 1;
  nowfile = nowfile + 1;
  pdfMake.createPdf(docInfo).download(addres + '.pdf');
});
};
  • Потому что function(data) срабатывает не сразу после $.get, а потом, через несколько секунд, когда придёт ответ. Остальной код не будет дожидаться получения ответа и продолжает работать дальше, выполняя вечный цикл – andreymal Apr 07 '19 at 14:57
  • А как сделать, чтоб остальной код дождался пока выполниться $.get, и только потом заново начинал выполнять цикл? – Евгений Apr 07 '19 at 15:22
  • Уберите цикл вообще, запихните содержимое бывшего цикла в отдельную функцию и вызывайте эту функцию внутри function(data) – andreymal Apr 07 '19 at 15:48

0 Answers0