Я создал веб-хранилище для информации о продукте (productId, name, quantityonhand) и запишу в него записи с сервера. Я должен проверить, доступно ли количество, необходимое для принятия заказа.HTML5 Последовательное выполнение
Форма продукта имеет флажки (с именем = «продукт») для каждого продукта, доступного в веб-хранилище, и соответствующее поле ввода текста, чтобы принять требуемое количество.
Метод проверки определяется следующим образом.
function productValidation(){
for(i=0;i<document.Products.product.length;i++){
// checking whether the product has been checked/choosen
if (document.Products.product[i].checked==true){
var productId = document.Products.product[i].value;
var qty = document.Products.p[i].value;
var db = systemDB;
// validating the available quantity
db.transaction(
function(transaction){
transaction.executeSql('select * from product where productId=?;',
[productId],
function(transaction, results){
for (var j=0; j<results.rows.length; j++) {
var row = results.rows.item(j);
if (qty>row['qoh']){
alert(
row['productname']
+ ' is out of stock. We can serve you only '
+ row['qoh'] + ' quantities currently!');
document.Products.product[i].checked = false;
document.Products.p[i].value = 0;
}
}
});
}
);
}
}
return false;
}
Когда этот код выполняется, из-за асинхронной природы db.transaction, внешний контур становится выполнена и проверка происходит только за последний выбран продукт.
Помогите мне исправить это. Я хочу, чтобы выполнение выполнялось последовательно.
Yuvi