データベースから読み取ったデータを変数に入れようとしています。コールバック関数を含む多くのことを試しましたが、プロセスが「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);
}