Я пытаюсь прочитать данные из двух разных хранилищ объектов из IndexedDB. Я использую "вложенные" курсоры. Но это не работает, как я исключаю. Это работает, когда я читаю это отдельно.
Для первого студента это проходит один раз через внутренний курсор, для второго студента два раза и т. Д.
Я должен использовать IndexedDB с EcmaScript6.
Вот мой код:
function listMarkByStudents(event){
let transaction = db.transaction(["students", "marks"], "readonly");
let storeStudents = transaction.objectStore("students");
let storeMarks = transaction.objectStore("marks");
let indexStudents = storeStudents.index('sName');
let indexMarks = storeMarks.index('idStudent')
let output = '';
indexStudents.openCursor().onsuccess = function (event){
let cursorStudents = event.target.result;
if(cursorStudents){
output += "<tr>";
output += "<td>"+cursorStudents.value.id+"</td>";
output += "<td>"+cursorStudents.value.sName+"</td>";
output += "<td>"+cursorStudents.value.email+"</td>";
output += "</tr>";
indexMarks.openCursor().onsuccess = function (event){
let cursorMarks = event.target.result;
if (cursorMarks){
output += "<tr>";
output += "<td>"+cursorMarks.value.markValue+"</td>";
output += "<td>"+cursorMarks.value.idStudent+"</td>";
output += "<td>"+cursorMarks.value.idSubject+"</td>";
output += "</tr>";
cursorMarks.continue();
}
}
cursorStudents.continue();
}
document.getElementById('StudentsMarkList').innerHTML = output;
}
}