为什么删除sqlite中不存在的表时不会出现任何错误?

时间:2019-04-04 05:16:31

标签: javascript sqlite react-native expo

我有一个函数可以在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')
                }
            }
        )
    });

1 个答案:

答案 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);
    }
  )
});