console.timeEnd () дублируется неизвестным конструктором. js при отладке с Node.js в vscode. Что это? - PullRequest
2 голосов
/ 28 января 2020

Я изучал node.js отладку и заметил, что console.timeEnd() печатается дважды, только когда он запускается Debug с Node.js в vscode.

Вот мой код:

// myConsoleTime.js
console.time('myTask')
for (let i = 0; i < 10000; i++) {
  i + i; // It's myTask
}
console.timeEnd('myTask');

А это вкладка КОНТРОЛЬ ОТЛАДКИ, которая открывается кнопкой vscode Debug with Node.js:

enter image description here

Как на скриншоте, из-за constructor.js который, кажется, находится в /internal/console/constructor.js (точно нет такого файла в моей файловой системе Ubuntu), console.timeEnd() как-то печатается дважды. Более того, сообщаемое время значительно отличается от первого.

Что это такое constructor.js и какова причина разницы во времени?

1 Ответ

1 голос
/ 11 февраля 2020
Файл

constructor.js из одного из внутренних файлов VSCode , который используется для отладки сценариев Node JS.

Его можно найти, добавив точку останова к console.timeEnd('myTask'); и отладку.

Add a breakpoint to line 6

Once Debugger приостанавливает его выполнение в точке останова. Проверьте загруженные скрипты на левой панели. constructor.js доступен в <node_internals>/internal/console/constructor.js

enter image description here

Этот файл отвечает за второй журнал, который произошел в консоли.

enter image description here

Вот второй журнал, в котором миллисекунды установлены с точностью до 3 десятичных знаков. И именно поэтому произошла разница во времени.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...