Задать вопрос

Синхронизация console.log()

Имеется код:

(В цикле происходит считывание xml-файла, его парсинг, получение информации из определнных блоков и далее, используя RegExp, поиск определенных предложений)

var tempNumber = 0;

for (i=0; i < 3; i++) {

    <...>
    tempNumber++;
    <...>


}

console.log("tempNumber: " + tempNumber);

В итоге, на консоль выводится:
"tempNumber: 0"

При проверке на простом цикле:
var tempNumber = 0;

for (i=0; i < 3; i++) {

    tempNumber++;

}

console.log("tempNumber: " + tempNumber);

Выводится верное значение "3".

Подскажите, пожалуйста, как в первом варианте вывести на консоль корректный результат?
  • Вопрос задан
  • 2561 просмотр
Подписаться 4 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
HaJIuBauKa
@HaJIuBauKa
Рискну "промедитировать": у вас в <...> меняется та самая переменная tempNumber...
Ответ написан
ghaiklor
@ghaiklor
NodeJS TechLead
1. Вы просто изменяете значение переменной где-то в теле цикла обратно на ноль.
2. Вы используете defered, setTimeout либо другие приемы по распределению потока выполнений. Что приводит к срабатыванию лога быстрее, чем выполнится обработка тела цикла.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽