Мне трудно перебирать список элементов и добавлять и выводить их с помощью ванильного javascript. Допустим, у меня есть список строк ["cat", "ball", "bat", "mouse"].
Я хочу просмотреть эти элементы и отобразить их один за другим. Например, сначала мне нужно отобразить «cat», а затем перейти к отображению «bat». Чтобы сделать это, я должен сначала подождать, пока «кошка» не исчезнет, дождаться ее исчезновения, а затем отобразить «летучая мышь». В настоящее время я просто использую цикл for, цикл идет прямо к концу списка "mouse" и не ждет, пока другие элементы закончат исчезать.
Чтобы исправить это, я знаю, что мне нужно использовать асинхронное программирование, обратные вызовы, API обещаний и т. Д., Но я не слишком много работал с ними, поэтому я не знаю, как реализовать это решение. Любая помощь или ясность в том, как использовать асинхронное программирование вместе с setInterval (), очень ценится.
Вот фрагмент моего кода:
var textarr = ["cat", "ball", "bat", "mouse"]
for(let i=0; i<textarr.length; i++){
var text_item = document.getElementById('text_item');
text_item.style.opacity = 0;
text_item.innerHTML = textarr[i];
// problem lies here; this is skipping to end of the list (mouse)
fadeIn(text_item);
}
//function borrowed from stack overflow to fadeIn elements
function fadeIn(element) {
var op = 0.1; // initial opacity
element.style.display = 'block';
var timer = setInterval(function () {
if (op >= 1){
clearInterval(timer);
}
element.style.opacity = op;
element.style.filter = 'alpha(opacity=' + op * 100 + ")";
op += op * 0.1;
}, 100);
}