js中关于循环弹出打印对话框的疑惑

js中循环调用this.print()打印为什么只能在最后跳出循环后才弹出一次打印对话框

js是单线程操作的,因此只有当你的函数退出后,打印驱动才能接到控制权。一般可以改成类似以下写法

function printLoop(){
    var loop = 0; // 循环计数器
        var max = 10; // 最大循环次数

    // 第一次启动
    setTimeout(print, 100);
    function print()
        {
            // 判断是否超过循环
            if(loop > max)
                     return;
                调用打印函数
                // 下一次启动
              setTimeout(print, 100);
        }
}