In general, the problem in the following is not the output delay. I can not understand why?

const demand=[{mes1:`<p>я</p>`},{mes2:`<p>люблю</p>`},{mes3:`<p>JS</p>`}]; const container = document.querySelector('.container'); const addTemplate = (template) => { container.insertAdjacentHTML('beforeend', `${template}`) }; for (let item = 0; item < demand.length; item++) { let deley=0; for (let key in demand[item]) { setTimeout(()=>{addTemplate(demand[item][key])},deley); deley+=5000; } } 
 <div class="container"> </div> 

    1 answer 1

    See comments

     const demand=[{mes1:`<p>я</p>`},{mes2:`<p>люблю</p>`},{mes3:`<p>JS</p>`}]; const container = document.querySelector('.container'); const addTemplate = (template) => { container.insertAdjacentHTML('beforeend', `${template}`) }; let deley=0; for (let item = 0; item < demand.length; item++) { // let deley=0; ERROR - все время обнуляется for (let key in demand[item]) { setTimeout(()=>{addTemplate(demand[item][key])},deley); deley+=5000; } } 
     <div class="container"> </div>