Показать сообщение отдельно
  #1 (permalink)  
Старый 22.04.2012, 11:00
Интересующийся
Отправить личное сообщение для SindBad Посмотреть профиль Найти все сообщения от SindBad
 
Регистрация: 15.03.2011
Сообщений: 11

Как заставить скрипт дождаться выполнения асинхронной операции?
Всем привет.
Есть в скрипте асинхронная операция, которая выглядит так:
var db = openDatabase("stor", "1.0", "stor data");
		db.transaction(function(tx) {
			tx.executeSql(
				"CREATE TABLE IF NOT EXISTS `stor` (`key` TEXT, `data` BLOB, unique(`key`))",
				[],
				function(tx, result){
					tx.executeSql('SELECT * FROM `stor`', [], function (tx, results){
					  var len = results.rows.length, i;
					  for (i = 0; i < len; i++) {
						storage[results.rows.item(i).key] = results.rows.item(i).data;
					  }
					});
					
				},
				function(tx, error){
					
				}
			);
		});

Ниже идёт проверка наличия элементов в массиве, но когда она запускается, цикл ещё не закончен, и соответственно, идёт потеря элементов, весь остальной код даёт сбои. Как "застопорить" скрипт, пока цикл не будет пройден?
Ответить с цитированием