データベースから読み取ったデータを変数に入れようとしています。コールバック関数を含む多くのことを試しましたが、プロセスが「opencursor().onsuccess」関数の範囲外にある場合は何も機能していないようです。
「アラート 1」は結果を正しく表示しますが、「アラート 2」と「アラート 3」は結果を表示しません。
HTML コードから「main()」関数を呼び出しています。
私はインターネットで解決策を探していたので、良い結果が得られなかったので、本当にイライラしています。
誰か助けてくれませんか?
どうもありがとう。
var data=[];
function kkeyget(t1, db_name, db_version)
{
    var request = indexedDB.open(db_name, db_version);
    request.onerror=function()
    {
     alert("Error");
    }    
    request.onsuccess=function(event)
    {
    var db=this.result; 
    var trans = db.transaction(t1, "readonly");
    var objectStore = trans.objectStore(t1);
    objectStore.openCursor().onsuccess = function(event) 
    {
        var cursor = event.target.result;
        if (cursor) 
        {
         data.push(cursor.value);
         //Alert 1:
         alert(data[0].id);
         cursor.continue();
        }
        else alert("No more entries!");
    };
    }
    //Alert 2:
    alert(data[0].id);
} 
function main()
{
kkeyget("agenda", "example_db", 1);
//Alert 3:
alert(data[0].id);
}