Javascript Web SQL数据库-执行asyc调用并继续

Javascript Web SQL数据库-执行asyc调用并继续,javascript,jquery,sqlite,cordova,web-sql,Javascript,Jquery,Sqlite,Cordova,Web Sql,我正在尝试进行一个异步调用(SELECT语句),它允许我继续主线程,如以下代码所示(我需要执行序列:“A”,2,“B”): 但我得到“A”,“B”,2 如何实现执行顺序“A”,2,“B” 谢谢。 Paul这是websql API的一个主要问题。它在IndexedDB API中得到了修复,因此规范定义了所有必须放在事务上的请求必须按其放置顺序执行。WebSQL没有这个条件,因此它可以按任何顺序执行 解决方法是使用请求成功回调。stackoverflow中有一个线程用示例解释了这个概念 可能重复的

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

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

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

谢谢。
Paul

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

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

可能重复的
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');
}