Javascript setTimeout在循环时暂停

Javascript setTimeout在循环时暂停,javascript,settimeout,while-loop,Javascript,Settimeout,While Loop,我使用setTimeout设置了一个幻灯片放映(Slideshow()),效果很好。我需要将幻灯片放映限制为3次重复,但当我添加while循环(Count())时,它会打印测试1并暂停 function SlideShow() { setTimeout("document.write('Test 1')", 1500); setTimeout("document.write('Test 2')", 3000); setTimeout("document.write('Test 3')

我使用setTimeout设置了一个幻灯片放映(Slideshow()),效果很好。我需要将幻灯片放映限制为3次重复,但当我添加while循环(Count())时,它会打印测试1并暂停

function SlideShow()
{
  setTimeout("document.write('Test 1')", 1500);
  setTimeout("document.write('Test 2')", 3000);
  setTimeout("document.write('Test 3')", 4500);
}

function Count()
{
  var i=0;

  do
  {
    SlideShow();
    i++;
  }
  while (i<=3);
}
函数幻灯片放映()
{
setTimeout(“document.write('test1')”,1500);
setTimeout(“document.write('test2')”,3000);
setTimeout(“document.write('test3')”,4500);
}
函数计数()
{
var i=0;
做
{
幻灯片();
i++;
}
而(我这对我来说很有效:

    function slideShow() {
        setTimeout("alert('1');", 1500); 
        setTimeout("alert('2');", 3000); 
        setTimeout("alert('3');", 4500); 
    }

    function count() {
        for(var i=0; i<3; i++) {
            slideShow();
        }
    }

    count();
函数幻灯片放映(){
设置超时(“警报('1');”,1500);
设置超时(“警报('2');”,3000);
设置超时(“警报('3');”,4500);
}
函数计数(){

对于(var i=0;i您可以只使用一个超时,如下所示:

<img id="theImg" />
<script>
    var cnt = 2,
        i = 0,
        pics = [
            'image1.png',
            'image2.png',
            'image3.png'
        ];
    function SlideShow(ap){
        if(ap[i]){
            //set the src of theImg to the item i of the array
            document.getElementById('theImg').src = ap[i++];
            setTimeout(function(){
                SlideShow(ap);
            }, 1500);
        }else if(cnt--){
            i = 0;
            SlideShow(pics);
        }
    }
    SlideShow(pics);
</script>


感谢您的努力-它实际上会重复警报1 3次,然后再重复警报2 3次,以此类推-抱歉-Rhys您想要什么?这就是您上面描述的“我需要将其限制为3次重复”抱歉让人费解-我问的是幻灯片放映,重复3次,不是3次显示的同一张图片,然后是一组新图片…-RhysI需要在计时器(at},1500)之后添加一个包含tween例程的字符串。我有变量var1、var2等内的例程。类似于“tween='var'+I;echo tween;”。语法似乎错误,因为它无法运行。如果我手动输入Tween字符串,它可以正常工作,但我需要将每个例程与相应的幻灯片图片相匹配。开始了,为Tween使用了另一个数组