以下是我的indexeddb(IDB)objectStore名称及其调用方法。使用索引DB中的游标
我想要的是从objectStore中获取值,并根据条件匹配值将这些值计算添加到变量中。
var item_id = [];
var db;
function displayNotes(filter) {
var line = 0;
var transaction = db.transaction(["frp_item_master"], "readonly");
var itemsname =[];
var itemsqty =[];
var itemsprice =[];
var itemsdisc =[];
var itemstax =[];
var handleResult = function(event) {
var cursor = event.target.result;
var price_with_tax;
var i = 0;
i++;
if (cursor) {
++line;
if (cursor.value.item_id == 20008)
{
item_id.push(event.target.result.value.item_id);
//and other array push here
//call function
price_with_tax = (get_tax(itemstax)/100)*itemsprice;
}
cursor.continue();
}
else {
//error
}
};
然后在创建我的函数后,在上面的方法中调用。
function get_tax(p_tax_master_id){
var get_me;
var total_tax_rate = 0;
var transaction = db.transaction(["frp_tax_master"], "readonly");
var objectStore = transaction.objectStore('frp_tax_master');
objectStore.openCursor().onsuccess = function(event){
var cur = event.target.result;
get_me = event.target.result.value.tax_master_id;
console.log('get_me'+get_me);
if (cur) {
if (get_me == 2008)
{
total_tax_rate += event.target.result.value.rate;
console.log("total tax"+total_tax_rate);
}
cur.continue();
}
else {
console.log('else'+get_me);
}
};
return total_tax_rate;
};
我收到错误,如图像所示。即使对象存储中没有值,游标仍在运行,并且它显示值不能设置为空。
我们是否可以循环遍历所有记录,直到取出最后一个值,然后退出游标将该值赋给变量。
基本上我给一个变量添加了一些数字。 screenshot-1 screenshot-2
在未来,请尝试包括错误的文本消息而不是截图。另外,请只重复错误似乎发生在你身上的代码行,而不是截取它的截图。谢谢! – Josh