我对我的JavaScript承诺问题有疑问。尽管这是一个angular6应用程序,但我认为任何具有JavaScript专业知识的人都可以在这里帮助我。
我在与我的angular组件分开的js文件中调用了一个简单的js函数。简单的js函数从本地数据库获取连接字符串列表,然后尝试返回该列表。如您在代码中所见,我设置了一个警报,因此我知道自己正在获取所需的信息。
问题在于,当它返回到顶部调用方法(第4行)时,它为空!好像它返回的是Promise而不是实际的数组。.如何获取实际值?
先谢谢了。
//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;
}