2016-05-15 1 views
0

связанные вопросы (не работает):WebSQL успех обратного вызова не может получить доступ к переменной после запроса

scope-troubles-in-javascript-...

Pass extra parameters to WebSQL callback function?

У меня есть «журнал» объект, чтобы захватить несколько успеха или ошибок переменные, как WebSQL транзакции проходят через запросы. Существует цикл в цикле, который циклически перемещается через ввод данных, который предоставляется с сервера в виде объектов в массивах в объектах, в основном таблицы, а затем строки. Все это работает нормально, пока не будет вызван внутренний запрос обратного вызова sql-запроса (а не окончательный успех транзакции). как видно из нижеследующего, я попытался вызвать функцию построителя функций для захвата переменной имени таблицы, но она не определена, когда вызывается возвращенная функция. Я пробовал много способов, но я либо закончил с неопределенными, либо только с последними таблицами.

Я попытался упростить свой код ниже, чтобы сосредоточиться на проблеме, некоторые из кода могут быть беспорядочными. Я понимаю, почему он недоступен из-за асинхронности, но не как обойти его.

ответ

0

Стандартный контроль над моей частью, смутил себя.

Оказывается, в моем построителе обратного вызова я пытался извлечь переменную tbl из функции caller-функции запросов sql-запросов не из области построения обратного вызова! Обратный звонок должен быть:

function buildCallback(tbl){ 
      // return function(tx,success,tbl){ <-- NOT THIS; 
      return function(tx,success){ // <-- THIS; 
       console.log('success: ', tx, success, 'tblN:',tbl);//tbl = 'TABLE NAME'; 
       ..... 
      } 
      } 
Смежные вопросы