Я написал следующую функцию для загрузки indexeddb. (из IndexedDB 備忘 メ モ ) Я думаю, что эта функция должна возвращать массив объекта. Но иногда он возвращает объект. Каковы возможности ошибки? Инструмент разработчика Chrome сказал, что тип объекта был Array во время выполнения функции «load». Но после полученных «записей» идет тип объекта.
async function load(dbobj, db, index, range) {
return new Promise(async (resolve, reject) => {
const saves = [];
const req = db.transaction(dbobj.storeName).objectStore(dbobj.storeName).index(index).openCursor(range);
const onfinished = () => {
console.log(`${saves.length} saves found.`);
if (saves.length > 0) {
resolve(saves[saves.length - 1]);
}
};
req.onerror = reject;
req.onsuccess = (ev) => {
const cur = ev.target.result;
if (cur) {
saves.push(cur.value);
cur.continue();
} else {
onfinished();
}
};
});
}
// example of receiving data
var records = await load(dbobj, db, index, range);