Создание массива всех значений ключей 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]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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