// jloadScriptAsync (Promise) ---------------------------- var jloadScriptAsync = function (d, s, id, src) { return new Promise((resolve, reject) => { try { var fjs = d.getElementsByTagName(s)[0]; const scriptEle = d.createElement(s); scriptEle.id=id; scriptEle.onload = function () { //solo quando script caricato: resolve(scriptEle); } scriptEle.onerror = function (ev) { reject(new Error(`jloadScriptAsync error for ${src}`)); } scriptEle.src = src; fjs.parentNode.insertBefore(scriptEle, fjs); //document.head.append(scriptEle); } catch (error) { reject("103 ➔ jloadScriptAsync "+error); // errore interno alla funzione } }); }; // fine jloadScriptAsync // waitForAWN Funzione che attende che un oggetto JavaScript AWN venga definito function waitForAWN(pollInterval = 100, timeout = 5000) { return new Promise((resolve, reject) => { const startTime = Date.now(); function checkAWN() { if (typeof AWN !== 'undefined' && AWN !== 'undefined') { resolve(AWN); // L'oggetto AWN è stato trovato, risolvi la Promise } else if (Date.now() - startTime >= timeout) { reject(new Error(`Timeout: Oggetto AWN non trovato entro ${timeout}ms`)); // Timeout raggiunto } else { setTimeout(checkAWN, pollInterval); // Prova di nuovo dopo l'intervallo di polling } } checkAWN(); // Inizia il polling }); } // fine waitForAWN // waitForIFR Funzione che attende che un oggetto JavaScript iFrameResize venga definito function waitForIFR(pollInterval = 100, timeout = 5000) { return new Promise((resolve, reject) => { const startTime = Date.now(); function checkIFR() { if (typeof iFrameResize !== 'undefined') { resolve(iFrameResize); // L'oggetto iFrameResize è stato trovato, risolvi la Promise } else if (Date.now() - startTime >= timeout) { reject(new Error(`Timeout: Oggetto iFrameResize non trovato entro ${timeout}ms`)); // Timeout raggiunto } else { setTimeout(checkIFR, pollInterval); // Prova di nuovo dopo l'intervallo di polling } } checkIFR(); // Inizia il polling }); } // fine waitForIFR