Javascript 循环的JS函数不等待超时

Javascript 循环的JS函数不等待超时,javascript,Javascript,问题 我在JS中的for循环只是在不等待超时的情况下传递所有元素,我尝试了一些方法,比如检查这个主题,但找不到任何解决方案 我想要什么 我希望for循环为数组中的每个元素等待超时 代码 我想在400毫秒后调用generateNext函数,但在这里,我的代码同时调用所有函数将generateNext放入超时函数中 setTimeout(function() { generateNext() }, 400); 这个问题的答案是,setTimeout是异步的,它不能延迟同步执行,除非其中一个保

问题

我在JS中的for循环只是在不等待超时的情况下传递所有元素,我尝试了一些方法,比如检查这个主题,但找不到任何解决方案

我想要什么

我希望for循环为数组中的每个元素等待超时

代码

我想在400毫秒后调用generateNext函数,但在这里,我的代码同时调用所有函数

将generateNext放入超时函数中

setTimeout(function() {
   generateNext()
}, 400);

这个问题的答案是,setTimeout是异步的,它不能延迟同步执行,除非其中一个保持同步

对于这种用法,您希望使用setInterval而不是setTimeout


不幸的是没有工作
setTimeout(function() {
   generateNext()
}, 400);
function generateList(level) {
    //her levelda olusacak parca sayisi 1 artar
    generatedList = [];
    let counter = 0
    const interval = setInterval(generateNext, 400)
}



function generateNext() {
    // bu kısım sonraki seviye için tek bir parça hazırlar
    if (counter === level) {
      clearInterval(interval)
    }
    var random = Math.floor(Math.random() * 4) + 1;
    var name = constList[random - 1];
    $("#" + name).fadeIn(100).fadeOut(100).fadeIn(100);
    playSound(name);
    generatedList.push(random);
    counter++
}