微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用数组 foreach() 创建元素 使用忙等待函数代替setTimeout

如何解决使用数组 foreach() 创建元素 使用忙等待函数代替setTimeout

var grid = document.getElementById("grid");
const calendar = [
  1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,];
calendar.forEach(myFunction);
function myFunction(value) {
  let div = document.createElement("div");
  div.classList.add("grid-item");
  div.innerHTML = value;
  grid.appendChild(div);
}

这是我的代码。我想为所有数组项每 500 毫秒创建一个“div”元素。 我该怎么做呢。 我试过“setTimeout”,但它不起作用。

解决方法

你能试试这个代码吗?

var grid = document.getElementById("grid");
const calendar = [
    1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,];

function appendChildInGrid(index) {
    console.log(calendar[index]);
    if (index < calendar.length) {
        setTimeout(function () {
            let value = calendar[index];
            let div = document.createElement("div");
            div.classList.add("grid-item");
            div.innerHTML = value;
            grid.appendChild(div);

            index++;
            appendChildInGrid(i);
        },500);
    }
}

appendChildInGrid(0);
,

使用忙等待函数代替setTimeout

const wait = (milliseconds) => {
  var dt = new Date();
    while ((new Date()) - dt <= milliseconds) { /* Do nothing */ }
}

wait(2000)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。