Синхронно или асинхронно работает console.log() - что делать, если выводит неправильные значения
Primary tabs
Вызов console.log() не является стандартным (не стандартизирован в рамках языка JavaScript на момент создания этой заметки), а потому его реализация зависит от браузера.
Известно немало примеров, когда реализация (см. в Сети "console.log() async or sync?") консоли откладывает вывод объекта, просто храня его ссылку, по ссылке объект меняется и мы получаем совсем не то, что ожидали, после того, когда печать всё же проводится.
То есть по сути, вывод в консоль будет работать в указанном порядке (первый по коду console.log() будет выполнен первым, а второй вторым и т.д.), но при распечатке относительно сложных сущностей их значения могут выводится уже после следующих (иногда даже сильно после) за печатающим console.log() изменений.
Решение
Если вы хотите достоверно узнать, какое значение принимает переменная в конкретной строчке кода, используйте отладчик браузера (выполнение кода по шагам)
- Log in to post comments
- 2590 reads