我对我认为是 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;
}