在再次执行启动计时器代码之前,如何确保db#serialize已完成?我看到等待/异步承诺是解决此问题的唯一选择。有没有更好的方法来解决这个问题? db#serialize应该提供了完整的回调。
db#each具有完整的回调,但是其他db#函数不提供该选项。通常d#serialize应该已经提供了此选项
function checkLoop()
{
//console.log("Checking for any request to process")
db.serialize(function(){
db.each('select * from prepare_updates where finished_at IS NULL',
function(err, row){
if(err === null )
{
console.log("preparing updates for " + row.id)
// Some processing
}
})
})
console.log("Starting timer again ")
if(!stop)
{
setTimeout(function(){checkLoop()},2000);
}
}