第一次尝试这种功能,我尝试了多种方法,但无法弄清楚我做错了什么。我总是遇到未捕获的错误...为什么?
具体来说,我收到以下错误:
未捕获(承诺中)类型错误:window.indexedDB.databases 不是函数
function dbReady(dbName, callback) {
if(typeof window !== "undefined") {
(window.indexedDB.databases()).then(dbs => function(dbs) {
const dbExists = dbs.map(db => db.name).includes(dbName);
if(dbExists && typeof callback === 'function') { callback(dbExists); return dbExists;}
else {throw new Error('databases() Failed:');}
}).catch((e) => {
console.error(e);
});
} else if(typeof callback === 'function') { callback(true);}
};
提前谢谢您! ...第一次在这里发帖...如果这说明了我的挫败程度:)
我尝试了使用 .then() 与 try / catch 与 wait 的各种方法...我真的不知道我在做什么,所以只是尝试我在这个网站上遇到的内容,其他人试图解决类似的问题情况。
错误发生在
(window.indexedDB.databases())
它不会被 catch 捕获,因为它不是被抛出到 Promise 中,而是被抛出到创建 Promise 本身的调用中。您可以执行 null 检查或用 try-catch 包围整个函数体