Используя оператор импорта, почему происходит сбой с "Uncaught SyntaxError: Неожиданный идентификатор" " - PullRequest
0 голосов
/ 24 декабря 2018

Итак, я пытаюсь проверить import myFunction from './mymodules.js'.Открытие в Chrome и я получаю сообщение об ошибке - Uncaught SyntaxError: Unexpected identifier

Вот ответ: https://repl.it/@PaulThomas1/ModulePractice

Я смотрю на эту статью: https://developers.google.com/web/fundamentals/primers/modules

Мой модулькласс:

export default function findInArray(arr, search) {
  if(Array.isArray(arr) == false) return Error("arr - Is not an array");
  if(search == undefined) return Error("search - Undefined");

  let searchMethod;

  if(typeof search == 'string') {
      searchMethod = (element) => { 
        return search == element;
      };
    } else {
      searchMethod = (element) => {
        return search(element);
      };
    }

  arr.forEach(element => {
    if(searchMethod(element)) {
      return element;
    }
  });

  return '';
}

Мой Javascript, который пытается импортировать это:

import findInArray from './modules/util.js';

let myArray = ["Bill", "Bob", "Ben"];

console.log(findInArray(myArray, "Bob"));

ПРИМЕЧАНИЕ. В Repl распознает метод из импорта, но не запускается.Я прочитал несколько страниц, но ничего по этому поводу.Я делаю что-то явно неправильно?

1 Ответ

0 голосов
/ 24 декабря 2018

Похоже на пару проблем:

1) Вам нужно только загрузить в script.js, так как это вызывает в другом модуле (убедитесь, что type="module" на этом скрипте, хотя)

<script type="module" src="script.js"></script>

2) В util вы не можете вернуться с обратного вызова forEach таким образом.Вам, вероятно, следует использовать либо filter, либо find, чтобы вернуть новый массив или объект, в зависимости от ваших требований:

return arr.filter(element => searchMethod(element));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...