使用带有nodejs的Sqlite,您不能将调用执行顺序等于查询的实际数据库执行顺序。 例如,在此pseuso代码中,您无法预测是否将在B之前插入A或反之:
function() {
db.run("INSERT A", function() { });
db.run("INSERT B", function() { });
}
但是回调的执行顺序呢?如果在INSERT B的回调之前调用INSERT A的回调,你可以在B之前推断出A将是插入器吗?
答案 0 :(得分:1)
当代码执行开始时,所有回调都以event queue
顺序传递给FIFO
,事件队列监视当前堆栈执行,如果堆栈为空,则立即传递{{1} } first position's callback
。
因此,在您的情况下,如果调用stack
回调,则在执行INSERT A
回调之后首先执行回调。
我们建议您INSERT B
https://www.youtube.com/watch?v=8aGhZQkoFbQ正确理解YouTube link
您可以从这里获取很多想法,因为这个家伙以合适的方式解释了所有内容