Как обновить глобальную переменную с помощью sqlite-запроса в javascript? - PullRequest
1 голос
/ 17 апреля 2020

Я хочу обновить объявленную глобально переменную после запроса sqlite, но не могу заставить ее работать, я прочитал, что это может быть связано с асинхронными функциями, но я не знаю, как реализовать обратные вызовы и прочее в этом примере, может ребята помогите пожалуйста. Вот код:

const sqlite3 = require('sqlite3').verbose();
const dbPath = './src/db/db.sqlite3';

let db = new sqlite3.Database(dbPath, (err) => {
            if (err) {
              console.error(err.message);
            }
            console.log('Connected to database.');
          });

let number = null;
let rowsExist = null;
db.get("select count(*) from PRICE", [], (err, row) => {
            if (err) {
                console.error(err.message)
            }
            else {
                rowsExist = Object.values(row)[0];
                console.log(rowExist) //this works but outside the function it doesnt get updated
            }
            });
// here rowExist remains the same after query    
if (rowsExist === null) {
            number = 1
        }
else {
        db.get("SELECT number FROM PRICE ORDER BY number DESC LIMIT 1", [], (err, row) => {
                if (err) {
                    console.error(err.message)
                }
                else {
                    number = Object.values(row)[0] + 1

                }
            })

        };


...