Я использую Babel для компиляции некоторых ES6 JavaScript до ES5. У меня возникают некоторые проблемы с моим кодом, потому что мои модули оцениваются в неопределенном порядке.Почему порядок выполнения моих модулей отличается от ожидаемого?
Скажем, у меня есть модули:
// a.js
class A {
constructor() {
this.prop = window.randomProperty;
console.log("Prop " + this.prop);
}
}
const a = new A();
export default a;
Этот модуль основан на window.randomProperty
, чтобы установить, прежде чем он может создать экземпляр себя.
Теперь у меня есть главный файл:
// main.js
import "babel-polyfill"; // Not sure if this is relevant
window.randomProperty = function() { return "hi"; };
console.log("randomProperty set");
import A from "a";
Выход консоли этого:
Prop undefined
randomProperty set
Как я могу иметь код выполнять в правильном порядке?
Никогда не используйте 'class'es для одиночных игр! Никогда не экспортируйте отдельные экземпляры! Используйте простой литерал объекта. – Bergi