У меня проблема с моим кодом. Поэтому я пытаюсь получить разные значения, выполняя функцию indexedDB .continue (), но каким-то образом курсор не обновляется и остается на той же клавише. Я заблудился из-за слов о том, как это исправить, кто-нибудь может мне помочь?
Я пробовал код, в котором функция .continue () находится вне функции while, которую я построил, и она работает безвопрос, находясь внутри функции while, она не обновляет сами значения.
var date2 = new Date();
var id;
var request = window.indexedDB.open("distrostore");
request.onsuccess = function(event) {
db = event.target.result;
objStore = db.transaction(["orderhistory"], "readonly").objectStore('orderhistory');
var datecount = objStore.count();
objStore.index('date_purchased').openCursor().onsuccess = function(event) {
var date = new Date(date2.getFullYear(), 0, 1);
var data = [];
var months = [];
count = 0;
month = 0;
var datecount2 = 0;
mlist = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ];
const cursor = event.target.result;
if (cursor) {
while (month < 12){
if (datecount2 < datecount.result && cursor.value.date_purchased.includes(date.getFullYear() + '-' + ("0" + (date.getMonth() + 1)).slice(-2))){
count++;
datecount2++;
if (datecount2 !== datecount.result){
cursor.continue();
}
} else if (count > 0){
data.push(count);
count = 0;
months.push(mlist[date.getMonth()]);
date.setMonth(date.getMonth()+1);
month++;
} else if (date.getMonth() <= date2.getMonth()){
data.push(count);
months.push(mlist[date.getMonth()]);
date.setMonth(date.getMonth()+1);
month++;
} else {
months.push(mlist[date.getMonth()]);
date.setMonth(date.getMonth()+1);
month++;
}
}
}
var ctx = $("#chart1 .chart");
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: months,
datasets: [{
label: 'Orders',
data: data,
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
],
fill: false,
borderColor: [
'rgba(70,76,255,1)',
],
borderWidth: 2
}]
},
options: {
maintainAspectRatio: false,
legend: {
display: false
},
scales: {
yAxes: [{
ticks: {
beginAtZero:true
}
}]
}
}
});
}
db.close();
}
Должна возвращать цену в соответствии с тем, что есть в моей IndexedDB, но возвращает неправильную цену. Выход должен быть 196.10.