Шутка - как получить идентификатор setTimeout? - PullRequest
0 голосов
/ 26 марта 2020

У меня есть следующий тест:

it('should have a numerical id set', () => {
  var id = setTimeout(function () {
    console.log(id); //Here
  }, 1000);
  console.log(id);

  // Expectation to be run here.
});

Консоль выходит из системы следующим образом:

{
  "_called": false,
  "_destroyed": false,
  "_idleNext": null,
  "_idlePrev": null,
  "_idleStart": 1423,
  "_idleTimeout": -1,
  "_onTimeout": null,
  "_repeat": null,
  "_timerArgs": undefined,
  Symbol(unrefed): false,
  Symbol(asyncId): 160,
  Symbol(triggerId): 0
}

Почему она регистрирует это вместо числового значения и как я могу получить числовое значение?

1 Ответ

1 голос
/ 26 марта 2020

Вы работаете в тестовой среде node (либо через testEnvironment config, либо --env=node), которая возвращает timer, а не идентификатор. Если вы используете тестовую среду jsdom, вы получите обратно number.

testEnvironment документы

...