Создание массива всех значений ключей indexedDB — функция возвращается до завершенияJavascript

Форум по Javascript
Anonymous
Создание массива всех значений ключей indexedDB — функция возвращается до завершения

Сообщение Anonymous »

У меня возникла проблема: ключи indexedDB не соответствуют номерам записей. Чтобы исправить это, мне нужно просмотреть записи и сбросить идентификатор, чтобы он соответствовал индексу. Я пытаюсь сформировать массив, содержащий все идентификаторы записей, с помощью курсора, но результат возвращается немедленно.
Как мне дождаться, пока все идентификаторы будут собраны, прежде чем возвращать массив?
Пока у меня это получается.

Код: Выделить всё

async function getKeyIndex(s) {
var i = await countDBRecords(s);   // my own f() - no problem here.
var dbStore = [];
var c = 0;
var objectStore = db.transaction(s).objectStore(s);
objectStore.openCursor().onsuccess = event => {
var cursor = event.target.result;
if (cursor) {
console.log("Name: " + cursor.key + " - id: " cursor.value.id);
dbStore[c]= cursor.value.id;
c++;
if(c 

Подробнее здесь: [url]https://stackoverflow.com/questions/79793041/creating-an-array-of-all-indexeddb-key-values-function-returns-before-completi[/url]

Вернуться в «Javascript»