Tengo tres archivos js file_a.js , file_b.js y file_c.js , todos tienen una clase llamada Context :
export class Context{ constructor(){ ... } Other_functions_which_are_different_for_each_file(){ ... } } Basado en el argumento pasado en index.js , estoy llamando a la clase Context desde el archivo relevante.
index.js :
let call = document.currentScript.getAttribute("call"); let {Context} = import('./file'.concat(call)); ... async function app(){ camera = new Context(); } El problema es que index.js no reconoce a Context como una clase. Entonces, obtengo Context is not a constructor en la línea camera = new Context(); .
¿Cómo puedo importar la clase Context , de modo que no tenga un alcance de bloque y pueda llamar a la clase dentro de la función app() ?
Las importaciones dinámicas devuelven una promesa, por lo que deberá esperar esa promesa antes de poder usar Context . Por ejemplo:
const importPromise = import('./file'.concat(call)); ... async function app() { const { Context } = await importPromise; camera = new Context(); }