暂停javascript数据库查询,直到setTimeout完成

暂停javascript数据库查询,直到setTimeout完成,javascript,settimeout,Javascript,Settimeout,我有个问题。我正在查询一个数据库,并查看数据库中的每个结果。DB有两列名称和时间。现在我想让javascript显示该名称在数据库中的保存时间。我已尝试使用setTimeout()执行此操作 从数据库中选择后: function (transaction, result) { for (var i = 0; i < result.rows.length; i++) { var row = result.rows.item(i); $('div.box').html(row.

我有个问题。我正在查询一个数据库,并查看数据库中的每个结果。DB有两列名称和时间。现在我想让javascript显示该名称在数据库中的保存时间。我已尝试使用setTimeout()执行此操作

从数据库中选择后:

function (transaction, result) {
for (var i = 0; i < result.rows.length; i++) {
    var row = result.rows.item(i);
    $('div.box').html(row.name);
    var countdown;
    var countdown_number;
    countdown_init();

    function countdown_init() {
        countdown_number = 11;
        countdown_trigger();
    }

    function countdown_trigger() {
        if (countdown_number > 0) {
            countdown_number--;
            document.getElementById('countdown_text').innerHTML = countdown_number;
            if (countdown_number > 0) {
                countdown = setTimeout('countdown_trigger()', row.time);
            }
        }
    }

}
功能(事务、结果){
对于(var i=0;i0){
倒计时_数--;
document.getElementById('countdown\u text')。innerHTML=倒计时\u编号;
如果(倒计时次数>0){
倒计时=设置超时('countdown_trigger()',row.time);
}
}
}
}
}

现在,我的问题是,我相信,与javascript中的线程有关(但我可能错了)。当倒计时开始时,它不会暂停循环的执行,而是在一个新线程上开始倒计时,并在循环中继续进行,带来下一个DB条目,并因各种错误而崩溃

那我该怎么解决这个问题呢?我曾考虑过添加旗帜。。但我不确定这是怎么回事。我觉得(我希望)有一个直截了当的答案,但不确定是什么。

试试看

function (transaction, result) {
for (var i = 0; i < result.rows.length; i++) {
    var row = result.rows.item(i);
    $('div.box').html(row.name);
    var countdown;
    var countdown_number;
    countdown_init();

    function countdown_init() {
        countdown_number = 11;
        countdown_trigger();
    }

    function countdown_trigger() {
        if (countdown_number > 0) {
            countdown_number--;
            document.getElementById('countdown_text').innerHTML = countdown_number;
            if (countdown_number > 0) {
                countdown = setTimeout(function(){countdown_trigger();}, row.time);
            }
        }
    }

}
}
功能(事务、结果){
对于(var i=0;i0){
倒计时_数--;
document.getElementById('countdown\u text')。innerHTML=倒计时\u编号;
如果(倒计时次数>0){
倒计时=设置超时(函数(){countdown_trigger();},row.time);
}
}
}
}
}

首先,您有不匹配的括号,在第三行,您需要方括号,如
result.rows.item[i]。现在,你想把你的文字放在哪里?你能提供一些HTML标记并描述你想做什么吗?另外,您手头有像jQuery这样的框架吗?非常感谢,是的,很抱歉,正如您和其他评论员所指出的,我的代码示例非常草率,是的,这确实解决了它,但是在setTimeout运行时无法暂停DB循环的潜在问题仍然存在