0

我对我认为是 javascript 承诺问题有疑问。虽然这是一个 angular6 应用程序,但我认为任何具有 JavaScript 专业知识的人都可以在这里帮助我。

我在我的角度组件的单独 js 文件中调用一个简单的 js 函数。简单的 js 函数从本地数据库中获取连接字符串列表并尝试返回该列表。正如您在我的代码中看到的那样,我设置了一个警报,所以我知道我得到了我需要的信息。

问题是当它回到顶部调用方法(第 4 行)时,它是空的!就好像它返回了一个承诺而不是实际的数组。我怎样才能取回实际值?

提前致谢。

 //MY ANGULAR6 COMPONENT
   public getLocal() {
    this.Connections = [];
    this.Connections = fetchFromLocalDatabase();
   }

//MY IMPORTED JS FILE
fetchFromLocalDatabase() {
    let myArray = [];
    idb.open('InfoRail', 1).then(function (db) {
      var tx = db.transaction(['ConnectionStrings'], 'readonly');
      var store = tx.objectStore('ConnectionStrings');
      return store.getAll();
    }).then(function (items) {
       myArray = items;
       alert('show me ' + myArray[0].DatabaseName);      
    });
    return myArray;
  }
  
 

4

0 回答 0