Почему мой навык ведет себя по-разному, когда я перемещаю вспомогательные функции в другой модуль? - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь воссоздать навык Alexa Quiz, который упоминается в их общедоступном хранилище . Пока что умение работает правильно, когда файл index.js точно такой же, как в GitHub repo . Я пытаюсь переместить константы в отдельный файл данных, а вспомогательные функции - в другой файл. Когда я перемещаю константы в отдельный файл, код работает правильно. Однако, когда я перемещаю вспомогательные функции в другой файл, код начинает вести себя по-другому.

Я переместил константы в другой файл с именем data.js и экспортировал переменные в этом файле, используя

module.exports = {
  skillBuilder,
  imagePath,
  backgroundImagePath,
  correctAnswer,
  wrongAnswer,
  data,
  states,
  welcome,
  startQuiz,
  exitSkill,
  reprompt,
  help,
  useCardsFlag
};

В index.js я импортировал переменные, используя const Constants = require('data');

После этого я протестировал код, и он работает правильно (как и должно быть).

Теперь я переместил вспомогательные функции в другой файл с именем functions.js и экспортировал все функции, используя

module.exports = {
  getBadAnswer,
  getCurrentScore,
  getFinalScore,
  getCardTitle,
  getSmallImage,
  getLargeImage,
  getImage,
  getBackgroundImage,
  getSpeechDescription,
  formatCasing,
  getQuestion,
  getQuestionWithoutOrdinal,
  getAnswer,
  getRandom,
  askQuestion,
  compareSlots,
  getItem,
  getSpeechCon,
  getTextDescription
};

и импортировал функции, используя const Helpers = require('functions');.

Поскольку функции также ссылаются на константы, я также импортировал константы в functions.js, используя const Constants = require('data');

Я ожидал, что навык будет работать правильно. Однако, когда я начинаю тест, используя умение, Алекса просто произносит Справочное сообщение .

Вот мои файлы кода:

  1. index.js
  2. functions.js
  3. data.js

Я думаю, что происходит то, что состояния переменных не сохраняются между модулями, но я могу ошибаться. У меня есть 2 вопроса:

  1. Может кто-нибудь сказать, если мое понимание того, почему это происходит, исправить?
  2. Как это предотвратить?
...