const baseName = "base";
const eventStore = "events";
const ticketStore = "tickets";
var db;
var eventStatus;
chrome.runtime.onMessageExternal.addListener(
function(request, sender, sendResponse) {
if (request.command == "addEvent") {
console.log('cklick');
addEvent(request.eventData);
sendResponse({res: "OK"});
} else if (request.command == "getEventStatus") {
getEventStatus(request.eventId);
sendResponse({res: eventStatus});
}
});
function indexedDBOk() {
return "indexedDB" in window;
}
document.addEventListener("DOMContentLoaded", function() {
if(!indexedDBOk) return;
var openRequest = indexedDB.open(baseName,1);
openRequest.onupgradeneeded = function(e) {
var thisDB = e.target.result;
if(!thisDB.objectStoreNames.contains(eventStore)) {
thisDB.createObjectStore(eventStore, { keyPath: "eventId" });
}
if(!thisDB.objectStoreNames.contains(ticketStore)) {
thisDB.createObjectStore(ticketStore, { keyPath: "ticketId" });
}
}
openRequest.onsuccess = function(e) {
console.log("running onsuccess");
db = e.target.result;
}
openRequest.onerror = function(e) {
console.log('ERROR');
}
},false);
function getEventStatus(eventId, e) {
if(eventId === "" || isNaN(eventId)) return;
var transaction = db.transaction([eventStore],"readonly");
var store = transaction.objectStore(eventStore);
var request = store.get(Number(eventId));
request.onsuccess = function(e) {
eventStatus = e.target.result.eventStatus;
console.log(eventStatus);
}
}
Суть вопроса - как получить переменную eventStatus из функции getEventStatus для использования ее в отправке колбека sendResponse({res: eventStatus});
Сильно не пинайте, в асинхронных делах совсем запутался (
console.log(eventStatus); - выводит то что нужно, но вот дальше... не пойму как ее туда отправить