我试图使用WebSQL API与async.js,使它更容易使用。我使用方法async.waterfall()
将事务对象从一个函数传递到另一个函数。这里有一个简单的例子:使用WebSQL与async.js,导致InvalidStateError
async.waterfall([function(callback) {
db.transaction(function(tx) {
callback(null, tx);
}, onError);
}, function(tx, callback) {
tx.executeSql('SELECT * FROM sqlite_master', [], function(tx, rs) {
callback(null, tx, rs);
}, onError);
}], function(tx, rs) {
// do something with rs.rows
});
当我打电话tx.executeSql()
Chrome的控制台说:Uncaught InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable.
很可能这是指tx
对象。
使用WebSQL的传统方式(创建'函数瀑布')工作正常。有什么我不得不注意以这种方式使用WebSQL?还是有更好的选择?
为什么你要传递的交易对象? – Astronaut
因为我需要它来执行SQL语句。有没有我不知道的替代品呢? –