setInterval () отличается между браузером и узлом - PullRequest
0 голосов
/ 18 июня 2019

Глобальные методы setInterval и setTimeout различаются в браузере (окно) и NodeJS (глобально). Поведение совершенно одинаковое. Оба делают то же самое.

См. Документы о NodeJS и Браузер . В Node возвращаемое значение является экземпляром класса Timeout. Методы браузера возвращают только число, идентификатор обработчика.

Как работать с этой разницей, если вы разрабатываете для браузеров, но тестируете с Node, потому что ядром test-framework является узел (например, Jest). Нужно ли переключаться на тестовый движок браузера?

(кстати) Кроме того, в моем случае я ограничиваю все глобальные переменные. Поэтому я должен получить доступ только по имени области. например window.setInterval или global.setInterval не просто setInterval. (Это правило tslint no-restricted-globals)

В любом случае существует конфликт типов между функциями таймера узла и браузера. Есть хорошая практика, чтобы справиться с этим? Нужно ли переключать мой тестовый двигатель? Но в конце концов они делают то же самое. Может быть, я должен привести к любому типу?

Я знаю, что это не спецификация JavaScript. Это зависимость от окружающей среды. Я не говорю, что они должны быть точно такими же. Мне просто интересно, как с этим бороться, когда я запускаю модульные тесты на node-js, но я разрабатываю для браузера. В настоящее время только возвращаемые значения отличаются. Само поведение кажется равным.

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