gpt4 book ai didi

javascript - WebSQL 事务在控制台中工作,而不是在代码中

转载 作者:行者123 更新时间:2023-11-29 15:47:31 26 4
gpt4 key购买 nike

我正在尝试编写支持树数据的 Sencha Touch 2.0 WebSql 代理。我从 tomalex0 的 WebSql/Sqlite 代理开始。 https://github.com/tomalex0

修改脚本时我遇到了一个奇怪的调试问题:

(我使用的是 Chrome 17.0.963.78 m)

下面的片段只是被跳过了。交易永远不会发生!但是当我在上方或下方设置断点并在控制台中运行相同的代码时,它确实有效!

dbConn.transaction(function(tx){
console.log(tx);
if (typeof callback == 'function') {
callback.call(scope || me, results, me);
}
tx.executeSql(sql, params, successcallback, errorcallback);
});

你可以看到蓝色日志,绿色日志来自成功处理程序。当执行查询时,上面会有完全相同的日志(它是一个 SELECT * FROM ...; 所以当多次执行而不更改数据时,我会期望相同的结果)

我发现,当我将代码块添加到监视表达式时,它也会运行。

Debug Example

最佳答案

它没有被跳过。它正在被安排,但由于请求的异步性质,直到很晚才执行:

http://ejohn.org/blog/how-javascript-timers-work/

由于代码正在同步执行以进行异步调用,因此由于 javascript 的单线程性,它将延迟调用直到同步代码执行完毕。

关于javascript - WebSQL 事务在控制台中工作,而不是在代码中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9667951/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com