首页 > 解决方案 > 如何将 IndexedDB 值数据检索到变量?

问题描述

我在包含这些数据的 IndexedDB 表中有一些数据:

在此处输入图像描述

然后我有这个函数从IndexedDB取回数据(我需要带有版本的数组)

function enter_base_and_get_versions() {
  var returnData = [];
  var defer = $.Deferred();
  var name = document.getElementById('Search_Bar_Templates').value;
  var transaction = db.transaction(['Formulars'], 'readwrite');
  var formulars = transaction.objectStore('Formulars');
  var request = formulars.openCursor();

  request.onsuccess = function() {
    var cursor = this.result;
    if (cursor) {
      if (cursor.value.name == name) {
        returnData = cursor.value.versions;
        defer.resolve(returnData);
        return defer.promise();
      }
      cursor.continue();
    } else {
      alert("Template doesnt exists");
    }
  };
}

function get_versions() {
  var myFormularsPromise = enter_base_and_get_versions();
  var myVersions = []

  $.when(myFormularsPromise).done(function(data) {
    myVersions = data;
  }).fail(function(data) {
    console.log("fail")
  });
}

当我尝试在函数 get_versions() 中打印 myVersions 时,它会打印 undefiend。我不知道如何将该数组保存到 javascript 变量中。

标签: javascriptjqueryasynchronouspromiseindexeddb

解决方案


推荐阅读