Ok, ho capito che riporti il dettaglio dell'errore, ma un po' di intraprendenza: aggiungi qualche log, vai in debug passo passo, fai il minimo sforzo per cercare di capire cosa non va.
A mio avviso, la cosa non può funzionare così, perché quando tu crei l'elemento dello script all'interno della funzione start(), la funzione termina prima che il browser passi ad eseguire ciò che c'è all'interno dello script. Non si può spezzare una funzione *non* asincrona in due parti.
Il tuo log di "xxx" arriva evidentemente prima dell'esecuzione dello script config.js.
Per provarlo rapidamente, basterebbe loggare il valore della variabile "xxx" in questo modo:
Così facendo, l'istruzione di log viene inserita nell'Event Loop e quindi verrà eseguita in seguito, dando tempo alla funzione di terminare e all'altro script di venire caricato ed eseguito.codice:setTimeout(() => { console.log(xxx); }, 0);
Mi chiedo comunque a cosa serva questa soluzione nello specifico, al posto di caricare banalmente i due script, ma questa è pura curiosità.![]()