次のコードを使用して、インデックス付きDBからデータを読み取り、変数allDownloadContentに保存しています。
ereaderdownload.indexedDB.getAllTodoItems = function() {
/*var todos = document.getElementById("todoItems");
todos.innerHTML = "";
*/
var db = ereaderdownload.indexedDB.db;
var trans = db.transaction(["downloadcontent"], "readwrite");
var store = trans.objectStore("downloadcontent");
var request = store.get(0);
request.onsuccess = function(e) {
console.log(e.target.result);
};
// Get everything in the store;
var cursorRequest = store.openCursor();
cursorRequest.onsuccess = function(e) {
var result = e.target.result;
if(!!result == false)
return;
allDownloadContent.push(result);
result.continue();
};
alert("content "+allDownloadContent[0]);
cursorRequest.onerror = ereaderdownload.indexedDB.onerror;
};
別のJavascriptファイルからgetAllTodoItemsメソッドを呼び出すと、未定義のアラートメッセージコンテンツが表示されます
cursorRequest.onsuccessメソッドが非同期を実行するため、未定義になります。
Chromeでサポートされていないため、Webワーカーを使用できません。
Jqueryでpromiseを試しました。それでも同じアラートメッセージが表示されます。
問題の解決にご協力ください。