我有一个函数可以在expo react native项目的sqlite数据库中删除表。当表存在于数据库中时,console.log
语句将输出table dropped
。但是,如果我连续两次运行相同的函数,我希望它说no results
,因为它先前已被删除,但是在控制台上什么也没打印。
那是为什么?我该如何解决呢?我想知道sqlite交易是否失败。
db.transaction(tx => {
tx.executeSql(
'DROP TABLE tableName;',
[],
(tx, results) => {
if (results && results.rows && results.rows._array) {
/* do something with the items */
// results.rows._array holds all the results.
console.log(JSON.stringify(results.rows._array));
console.log('table dropped')
}else{
console.log('no results')
}
}
)
});
答案 0 :(得分:2)
尝试删除不存在的表会导致错误。您只有一个成功回调,也需要一个错误回调。
db.transaction(tx => {
tx.executeSql(
'DROP TABLE tableName;', [],
(tx, results) => {
if (results && results.rows && results.rows._array) {
/* do something with the items */
// results.rows._array holds all the results.
console.log(JSON.stringify(results.rows._array));
console.log('table dropped')
} else {
console.log('no results')
}
},
(tx, error) => {
console.log(error);
}
)
});