У меня есть три файла js file_a.js
, file_b.js
и file_c.js
, все они имеют класс с именем Context
:
export class Context{
constructor(){
...
}
Other_functions_which_are_different_for_each_file(){
...
}
}
Основываясь на аргументе, переданном в index.js
, я вызываю класс Context
из соответствующего файла.
index.js
:
let call = document.currentScript.getAttribute("call");
let {Context} = import('./file'.concat(call));
...
async function app(){
camera = new Context();
}
Проблема в том, что index.js
не распознает Context
как класс. Итак, я получаю Context is not a constructor
ошибку в строке camera = new Context();
.
Как я могу импортировать класс Context
, чтобы я не был ограничен блоком и мог вызывать класс внутри функции app()
?
Динамический импорт возвращает обещание, поэтому вам нужно будет дождаться этого обещания, прежде чем вы сможете использовать Context
. Например:
const importPromise = import('./file'.concat(call));
...
async function app() {
const { Context } = await importPromise;
camera = new Context();
}