Показать сообщение отдельно
  #1 (permalink)  
Старый 14.10.2012, 01:12
Новичок на форуме
Отправить личное сообщение для drunia85 Посмотреть профиль Найти все сообщения от drunia85
 
Регистрация: 14.10.2012
Сообщений: 3

Callback функция и глобальные переменные
Всем привет. Скажу сразу, что проблему вызовов асинхронных функций и считывания результатов из глобальных переменных я понимаю.
Но столкнулся с для меня непонятной проблемой.
Суть проблемы:
Есть некоторая 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 функции то получаю ожидаемые значения в глобальных переменных. В чем проблема мне непонятно (
Буду очень рад пояснениям ...
Ответить с цитированием