Итак, у меня есть функция с именемactionX, которая должна выполнять все вызовы для запуска транзакции, и это objectStore. Однако и после прочтения некоторых тем я обнаружил, что indexedDB в некоторых случаях отличается / особенный для некоторых случаев, когда он не позволяет возвращать возвращаемое значение (по какой-то странной / особой причине).
Найдена также то, что мне нужно использовать что-то под названием Promise, однако я заблудился о том, как его использовать и когда знать, как его использовать. Итак, и в данном конкретном случае я пытаюсь узнать, сколько записей в моей локальной БД имеет запись, но возвращаемое значение не определено, однако, если я помещу console.log непосредственно перед возвращаемым значением, он вернет правильное числоrecords.
Что я могу сделать здесь, чтобы это исправить, или есть какой-то другой способ сделать это, что вы, ребята, советуете?
Хорошо, я пытался изменить функцию возврата на обычную функцию, но этоне сработало ... ... 1007 *
function transactionX( dbName, mode, method = false) {
let transaction = db.transaction( dbName, mode);
let objectStore = transaction.objectStore( dbName);
if ( method) {
let question = objectStore[method]();
question.onsuccess = function() {
console.log('onsuccess:' + question.result); //returning onsuccess:2
return question.result;
}
question.onerror = function(event) {
return;
}
}
else {
return objectStore;
}
}
let amount = transactionX( dbName, 'readonly','count');
console.log(amount); // returning undefined
Идея заключалась в том, чтобы возвращаемое значение возвращалось и действительное значение записи (в данном конкретном случае вызова метода count (), однако он должен работать с любым другим методом). а также.
Заранее спасибо