возвращаемые значения не всегда срабатывают - PullRequest
0 голосов
/ 10 октября 2019

Итак, у меня есть функция с именем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 (), однако он должен работать с любым другим методом). а также.

Заранее спасибо

...