데이터베이스에서 읽은 데이터를 변수에 넣으려고합니다. 나는 콜백 함수를 포함하여 많은 것을 tryed했지만 아무 것도 프로세스가 "opencursor(). onsuccess"함수 범위 밖에있을 때 작동하지 않습니다.변수에 IndexedDB 데이터베이스의 데이터 넣기
"경고 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);
}
답장을 보내 주셔서 감사합니다. 이 문제는 W3에서 IndexedDB를 선택하려는 결정에서 비롯되었습니다. 그게 우리가 가진거야. :) –