Javascript函数返回未定义的值,即使该变量已经从IndexedDB定义和获取

时间:2018-04-06 18:21:58

标签: javascript indexeddb progressive-web-apps

所以,我使用的是IndexedDB,它有一些数据。我想搜索它,一旦匹配,我返回了相应的数据。这是代码:

function code1(sname){
        var db;
        var request1 = indexedDB.open("footballDatabase",1);
        request1.onsuccess = function (evt) {
            db = request1.result;
            var objectStore = db.transaction("teamsData").objectStore("teamsData");
            objectStore.openCursor().onsuccess = function(event) {
                var cursor = event.target.result;
                if (cursor) {
                    var name = cursor.value.name;
                    if(sname === name){
                        var code = cursor.value.code;
                        console.log(sname + " " +code);
                        return code;
                    }else{
                        cursor.continue();
                    }
                }
            };
        }
    }

这是函数调用:

alert(code1("Chelsea FC"));

当我记录结果时,控制台会正确显示所有内容。但是当返回时,它显示未定义。 我知道JS中的undefined意味着,变量之前没有被正确初始化。但在这种情况下,它是,因为它记录了相同的变量。

我知道,我做错了什么,我只是弄不清楚是什么。希望你们能帮助我。

0 个答案:

没有答案