Webpack prend en charge la syntaxe import() conforme à ECMAScript proposal pour les importations dynamiques. Cette syntaxe utilise des promesses de chargement asynchrone de modules.Comment détecter quand un module dynamique et toutes ses dépendances ont été chargés?
Le problème est que la promesse est résolue dès que le module spécifique est chargé, sans attendre le chargement des dépendances du module (ce qui peut être n'importe quel type d'actif, y compris JS & CSS).
code Exemple:
import('./myModule.js').then(myModule => {
myModule.sayHello(); // This will be called before someCSS.css has been loaded
});
myModule.js
import './someCSS.css'; // <-- I need to know when this is loaded (there can be more than one asset)
export default class myModule {
sayHello() {
alert('Hello!');
}
}
Comment puis-je détecter le module, et tous les actifs liés, ont été chargés? Quelque chose comme un événement onload
pour les actifs asynchrones?
La promesse est résolue lorsque le script est chargé, indépendamment de ses dépendances. Voir ma mise à jour pour plus d'informations. –
@YoavKadosh Vous avez un problème de conception alors. Ce sont les dépendances du module enfant. Le module parent ne doit pas compter sur eux. S'il a besoin de ces dépendances, le module parent doit également les importer. – estus
Ils ne sont pas nécessaires dans le module parent. J'ai besoin de savoir quand ils sont disponibles afin de cacher le fileur. –