¿Por qué necesito establecer setTimeOut después de configurar el atributo para mi elemento div ( chartNode ), que pertenece a gridstack, que luego cambiará su estilo css, más específicamente su posición en el eje x e y en gridstack, de lo contrario procederá a ejecutar domToImage.toPng() antes de que entre en vigor el nuevo estilo CSS.
Pregunta
¿Cómo reemplazo setTimeOut con un controlador de eventos más apropiado que espera a que se establezca el nuevo atributo y se aplique el nuevo css antes de ejecutar domToImage.ToPng ?
Código
let node = document.getElementsByClassName('view-container view-grid-' + view_id[1])[0]; // const data = await convertToPng(doc,node,doc_width,doc_height,doc_wh_ratio); let chartNode = node.querySelectorAll('[gs-id="view1111|mod15"]')[0]; chartNode.setAttribute('gs-x',0); chartNode.setAttribute('gs-y',0); console.log(chartNodes); setTimeout(async function () { let dataUrl = await (domtoimage.toPng(chartNode)); console.log(dataUrl); }, 1000);