#javascript #node.js #import
#javascript #node.js #импорт
Вопрос:
Я не понимаю, как nodejs разрешает операторы импорта. Я постоянно получаю ошибку «Невозможно импортировать до инициализации».
Например, у меня есть модуль инициализации, который экспортирует асинхронную функцию и пару констант, которые она создает.
import init, { DATA_VALIDATION_POOL, QUEUE_POOL, IS_REPLAY_POOL } from './init.js';
а затем app.js
ожидает запуска функции инициализации. init.js
сам по себе также имеет импорт, и некоторые из них разрешаются, а некоторые терпят неудачу. Я не понимаю, почему некоторые терпят неудачу, а некоторые импортируются должным образом.
В этом примере все, что касается импорта из ./utils/pool.js
, работает нормально, но по какой-либо причине не удается импортировать содержимое ./utils/dash.js
.
./utils/dash.js
ничего не импортирует из ../init.js
init.js
...
// CREATE POOLS
...
export const QUEUE_POOL = createPool('QUEUE_POOL');
// EMOJI INTERACTIONS
...
registerEmojiInteraction(QUEUE_POOL, {
...
onAdd: goToPrevPage,
});
const init = async () => {
...
await createCoaches(allCoachIds);
};
import { rankEmojis, raceEmojis, vsRaceEmojis } from './Emojis.js';
import { registerEmojiInteraction, onAddHelper } from './utils/emojiInteraction.js';
import { createPool } from './utils/pool.js';
import {
finishedCoachingStudent,
goToPrevPage,
selectStudent,
goToNextPage,
} from './utils/dash.js';
import { createCoaches } from './utils/coach.js';
export default init;
Комментарии:
1. @etarhan все
utility/<filename>.js
модули — это просто наборы функций, они никогда не вызывают и не определяют никаких констант, кроме функций. Иначе говоря, ничего, кромеexport const <functionName> = () => {}
для всего файла.2. операторы импорта @etarhan подняты