javascript - Web SQL 数据库 - 执行异步调用并继续

标签 javascript jquery sqlite cordova web-sql

我正在尝试进行异步调用(SELECT 语句),该调用允许我继续主线程,如以下代码所示(我需要执行顺序:“A”、2、“B”):

function test(tx) {

// Drop Table
tx.executeSql('DROP TABLE IF EXISTS city');

// Create Table
tx.executeSql("CREATE TABLE IF NOT EXISTS city (id, name)");

// Insert 2 rows
tx.executeSql("INSERT INTO city (id, name) VALUES (1, 'Roma')");
tx.executeSql("INSERT INTO city (id, name) VALUES (2, 'Bari')");


alert("A");   

    tx.executeSql('SELECT * FROM city', [], function (tx, results) 
    {
       alert(results.rows.length);
    }, null);

alert('B');
}

但我得到,“A”,“B”,2

如何实现执行顺序“A”、2、“B”?

谢谢。 保罗

最佳答案

这是 websql API 的一个主要问题。它在 IndexedDB API 中得到修复,以便规范定义必须放置在事务上的所有请求必须按照其放置的顺序执行。 WebSQL 没有这个条件,因此它可以按任何顺序执行。

解决方法是使用请求成功回调。 stackoverflow 中有一个线程用示例解释了这个概念。

关于javascript - Web SQL 数据库 - 执行异步调用并继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19203443/

相关文章:

javascript - 如何在 JSP 中转义 JavaScript?

javascript - Value 属性不会绑定(bind)到 ui.bootstrap 进度条

javascript - socket.io 连接多个进程

javascript - javascript中的正则表达式匹配

javascript - 获取不断变化的图像宽度的即时更新

javascript - 一个链接中的 jQuery 定位错误

bash - 如何使用 CSV 文件更新表格中的所有列值?

c# - 使用 Contains 在 SQLite 中搜索非英文文本会返回比预期更多的结果

jquery - Droppable hoverClass 选项在 Internet Explorer 中不起作用

ios - iOS 上的 SQLite : performance and restrictions