как сделать чтоб блоки сменяли бесконечно друг друга через 3с

подскажите пожалуйста, есть массив объектов, есть функция, создающая блок, нужно сделать бесконечную смену блоков через 3с., у меня они появляются все вместе.


   const arrObj = [
     {
       img: 'img/avatar-1.png',
       textUser: 'Здравствуйте!',
       textAdmin: 'Привет!',
     },
     {
       img: 'img/avatar-2.png',
       textUser: 'Как дела?',
       textAdmin: 'Норм',
     },
   ];
   
   function getChat(arr) {
     const block = document.createElement('div');
   
     const user = document.createElement('div');
     const userImg = document.createElement('img');
     userImg.src = arr.img;
     const userText = document.createElement('p');
     userText.textContent = arr.textUser;
   
     const admin = document.createElement('div');
     const adminImg = document.createElement('img');
     adminImg.src = 'img/logo.svg';
     const adminText = document.createElement('p');
     adminText.textContent = arr.textAdmin;
   
     admin.append(adminImg, adminText);
     user.append(userImg, userText);
     block.append(user, admin);
   }
   
   setInterval(() => {
     for (let i = 0; i < arrObj.length; i++) {
       getBlock(arrObj[i]);
     }
   }, 3000)


Ответы (1 шт):

Автор решения: Алексей Шиманский

Думаю как-то так

let i = 0;
let intervalId = setInterval(() => {          
    getBlock(arrObj[i++]);     

    if (i === arrObj.length - 1)
        clearInterval(intervalId);
}, 3000);

при пустом массиве будет не очень

Тогда:

for (let i = 0; i < arrObj.length; i++) {
    setTimeout(() => {
        getBlock(arrObj[i]);
    }, i * 3000);
}
→ Ссылка