未捕获(在promise中)TypeError:window.indexedDB.databases不是函数

nnt7mjpx  于 11个月前  发布在  IndexedDB
关注(0)|答案(1)|浏览(172)

第一次尝试这种功能,我已经尝试了许多方法,但不能找出我做错了什么。我总是得到一个未捕获的错误.为什么?
具体来说,我得到以下错误:

未捕获(在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.我真的不知道我在做什么,所以只是尝试我在这个网站上遇到的其他人试图解决类似的情况。

iqxoj9l9

iqxoj9l91#

错误发生在

(window.indexedDB.databases())

字符串
它不会被catch捕获,因为它不是在promise内部抛出的,而是在创建promise的调用本身抛出的。你可以做一个null检查或者用一个try-catch包围整个函数体

相关问题