Бесконечный цикл javascript

173
12 января 2020, 20:20

подскажите пожалуйста почему данный цикл выполняется бесконечно? Если перед $.get поставить console.log("123") это выводиться бесконечно и в итоге зависает браузер, а то и вообще windows. Но тем не менее $.get не выполняется вообще.

addresa = pictures.split(":")
count = addresa.length;
nowfile = 0;
openw = 4
while(nowfile < count) {
 $.get("http://192.168.1.108/photos/" + addresa[nowfile], function(data) {
  console.log(data)
  str = "data:image/jpg;base64," + data
  docInfo['content'][openw] = { image: str };
  console.log("ban")
  openw = openw + 1;
  nowfile = nowfile + 1;
  ban = ban + 1;
  pdfMake.createPdf(docInfo).download(addres + '.pdf');
 });
};
Answer 1

У вас получилось синхронное выполнение бесконечного цикла, который регистрирует асинхронные XHR запросы и не освобождает поток, тем самым не давая шанс им выполнится.

Измените условие у цикла на while (nowfile++ < count) { ... - зарегистрирует требуемое кол-во XHR запросов и завершится, после этого начнут отрабывать запросы.

Почитать про асинхронность в javascript можно, например, тут.

READ ALSO
Визуально выделить элемент на странице CSS/JS

Визуально выделить элемент на странице CSS/JS

Есть необходимость фокуса на определенных элементах UI (цепляю скрин, что бы было понятно о чем речь)Кто-то делал? Есть-ли готовые решения?...

175
Селектор - найти id элемента

Селектор - найти id элемента

Помогите найти значение атрибута

195
Получить поля объекта json

Получить поля объекта json

Вывожу в консоль объект:

174
Как сделать вывод количества страниц 1изХ в горизонтальной прокрутке контента?

Как сделать вывод количества страниц 1изХ в горизонтальной прокрутке контента?

Некоторое время назад я задавал вопросы по горизонтальной прокрутке контента, тут: Горизонтальная прокрутка работает колесиком мышкиКак...

153