我試圖使用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語句。有沒有我不知道的替代品呢? –