Всем привет. Скажу сразу, что проблему вызовов асинхронных функций и считывания результатов из глобальных переменных я понимаю.
Но столкнулся с для меня непонятной проблемой.
Суть проблемы:
Есть некоторая callback функция (Web SQL) вызываемая в результате успешного завершения запроса к БД. Там я считываю данные и записываю в глобальные переменные:
var totalSum = maxSum = 0;
db.transaction(
sql, [],
function(tx, rs) {
totalSum = rs.rows.item(0)['totalSum'];
maxSum = rs.rows.item(0)['maxSum'];
var button = document.getElementById('button');
button.setAttribute('onclick', 'checkMyVars();');
},
function(tx, err) {alert(err.message)}
);
function checkMyVars() {
alert('totalSum = ' + totalSum + ' maxSum = ' + maxSum);
}
Так вот после выполнения запроса к БД я при нажатии на кнопку получаю 0!
А вот сам непонятный мне момент: Если вызывать функцию checkMyVars() в теле callback функции то получаю ожидаемые значения в глобальных переменных. В чем проблема мне непонятно (
Буду очень рад пояснениям ...