Вы можете вернуть обещание в конструкторе и ждать в другом файле. Пример:
class Test {
constructor() {
return Promise.resolve([1])
}
}
const x = new Test()
x.then(console.log)
Для вашего случая:
constructor(level) {
this.generator = new MazeGenerator(level);
this.generator.then( maze => {
console.log(maze)
})
}
Правильный способ, Подрядчик должен добавить всю конфигурацию. Вы должны вернуть обещание при вызове метода после инициализации.
class MazeRunner {
constructor(gridsize) {
this.gridsize = gridsize;
}
fetchLevels() {
return fetch("./data/hardcodedLevels.json")
.then((data) => data.json())
.then((data) => data[this.gridsize - 1])
.then(this.maakVeld);
}
maakVeld(grid) {
let maze = [];
for (let i = 0; i < grid[0].length; i++) {
maze[i][j] = [];
for (let j = 0; j < grid[0].length; j++) {
let wall = grid[i][j] === 1;
maze[i][j] = new Blok(j, i, wall);
}
}
return maze;
}
}
class Test {
constructor(level) {
this.generator = new MazeGenerator(level);
this.generator.fetchLevels().then((maze) => {
console.log(maze);
});
}
}