我試圖在將有關該行的信息插入數據庫後刪除表中的一行,然後將其刪除。工作燈調用循環中的過程錯誤
但問題是該行不會被刪除,因爲它似乎是在後臺進程中運行的WL調用過程,所以循環一直運行,直到它在程序完成之前到達終點。有什麼辦法讓循環可以先等待調用過程完成,然後繼續循環?
這裏是我的代碼
var table = document.getElementById('table_cart');
for (var r = 1, n = table.rows.length; r < n; r++) {
var barcode = table.rows[r].cells[0].innerHTML;
var name = table.rows[r].cells[1].innerHTML;
var total = table.rows[r].cells[2].innerHTML;
var price = table.rows[r].cells[3].innerHTML;
var invocationData = {
adapter: 'ProductAdapter',
procedure: 'add',
parameters: [barcode, total, price] //nama produk,jmlh
};
WL.Client.invokeProcedure(invocationData, {
onSuccess: function (response) {
alert(total + " " + name + " order success");
//table.rows[r].innerHTML = "";
//table.removeChild(table.rows[r]);
//table.deleteRow(r);//blm bisa apus cartnya
alert(r);
document.getElementById('table_cart').deleteRow(r);
},
onFailure: function (response) {
alert("error connecting to server");
}
});
}
我試圖刪除onSuccess上的行,但它不會刪除,因爲它是異步的。到調用過程完成時,循環已經完成,因此r值總是在循環的末尾 – stephen1706