我还是个初学者,所以我希望这有意义。
我尝试将返回变量从具有IndexedDB事务/游标的函数导出到具有get事务的另一个模块,但是该请求始终未定义。是否可以将IndexedDB函数的值跨到同一域中的其他模块?
db.js-正在导出的函数
...
function getAllData() {
// can use getAll() however not as efficient.
// let data = [];
let data = [];
let store = db.transaction("forms").objectStore("forms");
store.openCursor().onsuccess = (event) => {
let cursor = event.target.result;
if (cursor) {
console.log("FORM name is " + cursor.value.name + " and form counter is " + cursor.key);
// data.push(cursor.value.name);
data.push(cursor.value);
cursor.continue();
} else {
console.log("All entries retrieved");
console.log("the data form.name is " + data);
console.log("the data is " + data.length);
return data.length;
}
}
store.openCursor().onerror = event => {
console.log("Error in getting all data " + event.target.errorCode);
}
};
export { getAllData } ;
a.js
import { getAlldData } from './db.js'
(() => {
function getIndex() {
let formData = getAllData();
console.log("the counter is " + formData); // shows formData as undefined
}
}
)();
a.jsformData中db.jsgetAllData()的返回值是否可以得到?它们在db.js中正确地记录了console.log
1条答案
按热度按时间cbjzeqam1#
我看到你用回调函数使它工作了。下面是一个使用promise的例子。