第一次尝试这种功能,我已经尝试了许多方法,但不能找出我做错了什么。我总是得到一个未捕获的错误.为什么?
具体来说,我得到以下错误:
未捕获(在promise中)TypeError: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()vs try / catch vs. await.我真的不知道我在做什么,所以只是尝试我在这个网站上遇到的其他人试图解决类似的情况。
1条答案
按热度按时间iqxoj9l91#
错误发生在
字符串
它不会被catch捕获,因为它不是在promise内部抛出的,而是在创建promise的调用本身抛出的。你可以做一个null检查或者用一个try-catch包围整个函数体