Array.from не работает с жасмином - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь использовать Jasmine для тестирования моего кода, однако код работает в браузере, а Array.from () работает в узле следующим образом:

> t = [1, 2, 3]
[ 1, 2, 3 ]
> Array.from(t)
[ 1, 2, 3 ]

Вот код, который работает в Firefox:

var t = [1, 2, 3];
console.log(Array.from(t));
console.log(Array.from(baseObject.childNodes));

но когда я запускаю свои тесты, я получаю:

 TypeError: undefined is not a function (evaluating 'Array.from(t)') in file:///path/to/my/project/bin/my_module.js (line 154) (1)

Ответы [ 2 ]

0 голосов
/ 05 мая 2018

Я обнаружил в комментариях от Isiah Meadows , что хотя я использую узел 8.11.1 (версия, о которой я упоминал в комментариях, была npm, а не узел) для grunt, который совместим с ES2017, Jasmine использует PhantomJS, который не полностью совместим с ES2015. В качестве решения я сделал следующее:

  1. Реализован полифилл , предоставленный MDN .
  2. После долгих чтений выяснилось, что мне нужно использовать babel-preset-es2015 или предустановку babel env для таргетинга Chrome 45, чтобы обеспечить совместимость моего скомпилированного кода с PhantomJS.
0 голосов
/ 02 мая 2018

Array.from был добавлен в 6-е издание (ES2015) стандарта ECMAScript. Убедитесь, что вы тестируете достаточно свежую версию ECMAScript.

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